prism_set_points_3d_real_113.F90

Go to the documentation of this file.
00001 !-----------------------------------------------------------------------
00002 ! Copyright 2006-2010, CERFACS, Toulouse, France.
00003 ! Copyright 2006-2010, SGI Germany, Munich, Germany.
00004 ! Copyright 2006-2010, NEC Europe Ltd., London, UK.
00005 ! All rights reserved. Use is subject to OASIS4 license terms.
00006 !-----------------------------------------------------------------------
00007 !BOP
00008 !
00009 ! !ROUTINE: PRISM_Set_points_3d_real_113
00010 !
00011 ! !INTERFACE:
00012 
00013       subroutine prism_set_points_3d_real_113 ( method_id, point_name, &
00014                 grid_id, points_actual_shape,                          &
00015                 points_1st_array, points_2nd_array, points_3rd_array,  &
00016                 new_points, ierror )
00017 !
00018 ! !USES:
00019 !
00020       use PRISM, dummy_interface => prism_set_points_3d_real_113
00021       use psmile_user_data, only : psmile_store_data_points_3d_re
00022       use PSMILe
00023 
00024       implicit none
00025 !
00026 ! !INPUT PARAMETERS:
00027 !
00028       integer, Intent (In)                :: grid_id
00029 
00030 !     Specifies handle to the grid information created by routine
00031 !     prism_def_grid.
00032 
00033       character(len=*), Intent (In)       :: point_name
00034 
00035 !     Specifies the name of the set of points specified, unique on each
00036 !     process within each component.
00037 
00038       real, Intent (In)                   :: points_1st_array (:)
00039 
00040 !     Array defining the longitude of the grid centers
00041 
00042       real, Intent (In)                   :: points_2nd_array (:)
00043 
00044 !     Array defining the latitude of the grid centers
00045 
00046       real, Intent (In)                   :: points_3rd_array (:, :, :)
00047 
00048 !     Array defining the depth of the grid centers
00049 
00050       integer, Intent (In)                :: points_actual_shape (1:2, *)
00051 
00052 !     Specifies the shape for the "n_dim"-dimensional
00053 !     (including halo/overlap regions) with
00054 
00055 !     points_actual_shape (1,     1) = Lowest  first   dimension of points_1st_array, ...
00056 !     points_actual_shape (2,     1) = Highest first   dimension of points_1st_array, ...
00057 !     points_actual_shape (1,     2) = Lowest  second  dimension of points_1st_array, ...
00058 !     points_actual_shape (2,     2) = Highest second  dimension of points_1st_array, ...
00059 !        ...
00060 !     points_actual_shape (1,     i) = Lowest  i-th    dimension of points_1st_array, ...
00061 !     points_actual_shape (2,     i) = Highest i-th    dimension of points_1st_array, ...
00062 !     points_actual_shape (1, n_dim) = Lowest  n_dim-th dimension of points_1st_array, ...
00063 !     points_actual_shape (2, n_dim) = Highest n_dim-th dimension of points_1st_array, ...
00064 
00065 !     where n_dim corresponds to value of input parameter of n_dim
00066 !     of corresponding subroutine call prism_def_grid.
00067 !     for e.g. regular grids in lat-lon and sigma or isopycnic
00068 !     coordinates in the vertical.
00069 
00070       logical, Intent (In)                :: new_points
00071 
00072 !     Logical to indicate whether new points are specified (.true.) or old points
00073 !     shall be overwritten
00074 !
00075 ! !INPUT/OUTPUT PARAMETERS:
00076 !
00077       integer, intent (InOut)             :: method_id
00078 
00079 !     handle to the defined coordinate points
00080 !
00081 ! !OUTPUT PARAMETERS:
00082 !
00083       integer, intent (Out)               :: ierror
00084 
00085 !     Returns the error code of prism_set_points_3d_real_113;
00086 !             ierror = 0 : No error
00087 !             ierror > 0 : Severe error
00088 !
00089 ! !DESCRIPTION:
00090 !
00091 ! Subroutine "prism_set_points_3d_real_113" defines the localisation
00092 ! of the center 3 coordinate arrays of a grid covering a 3D physical
00093 ! space for the grid which has grid id "grid_id". It's a simple driver
00094 ! interface in order to support overloadig for the silly Fortran 95
00095 ! standard.
00096 !
00097 !
00098 ! !REVISION HISTORY:
00099 !
00100 !   Date      Programmer   Description
00101 ! ----------  ----------   -----------
00102 ! 01.12.03    H. Ritzdorf  created
00103 !
00104 !EOP
00105 !----------------------------------------------------------------------
00106 !
00107 ! $Id: prism_set_points_3d_real_113.F90 2740 2010-11-17 17:03:49Z hanke $
00108 ! $Author: hanke $
00109 !
00110   Character(len=len_cvs_string), save :: mycvs = 
00111       '$Id: prism_set_points_3d_real_113.F90 2740 2010-11-17 17:03:49Z hanke $'
00112 !
00113 !----------------------------------------------------------------------
00114 
00115 #ifdef VERBOSE
00116       print 9990, trim(ch_id)
00117       call psmile_flushstd
00118 #endif /* VERBOSE */
00119 
00120       call psmile_store_data_points_3d_re ( method_id, point_name,     &
00121                 grid_id, points_actual_shape,                          &
00122                 points_1st_array, points_2nd_array, points_3rd_array,  &
00123                 (/size(points_1st_array), size(points_2nd_array),      &
00124                 size(points_3rd_array)/), new_points, ierror )
00125 
00126 #ifdef VERBOSE
00127       print 9980, trim(ch_id), ierror
00128       call psmile_flushstd
00129 #endif /* VERBOSE */
00130 
00131 9990 format (1x, a, ': prism_set_points_3d_real_113: ')
00132 9980 format (1x, a, ': prism_set_points_3d_real_113: eof ierror =', i5)
00133 
00134       end subroutine prism_set_points_3d_real_113

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1