prism_set_points_3d_real_223.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_223
00010 !
00011 ! !INTERFACE:
00012 
00013       subroutine prism_set_points_3d_real_223 ( 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_223
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 !     Array defining the depth of the grid centers
00053 
00054 !     Specifies the shape for the "n_dim"-dimensional
00055 !     (including halo/overlap regions) with
00056 
00057 !     points_actual_shape (1,     1) = Lowest  first   dimension of points_1st_array, ...
00058 !     points_actual_shape (2,     1) = Highest first   dimension of points_1st_array, ...
00059 !     points_actual_shape (1,     2) = Lowest  second  dimension of points_1st_array, ...
00060 !     points_actual_shape (2,     2) = Highest second  dimension of points_1st_array, ...
00061 !        ...
00062 !     points_actual_shape (1,     i) = Lowest  i-th    dimension of points_1st_array, ...
00063 !     points_actual_shape (2,     i) = Highest i-th    dimension of points_1st_array, ...
00064 !     points_actual_shape (1, n_dim) = Lowest  n_dim-th dimension of points_1st_array, ...
00065 !     points_actual_shape (2, n_dim) = Highest n_dim-th dimension of points_1st_array, ...
00066 
00067 !     where n_dim corresponds to value of input parameter of n_dim
00068 !     of corresponding subroutine call prism_def_grid.
00069 !     for e.g. irregular lat-lon grid with sigma or isopycnic coordinates.
00070 
00071       logical, Intent (In)                :: new_points
00072 
00073 !     Logical to indicate whether new points are specified (.true.) or old points
00074 !     shall be overwritten
00075 !
00076 ! !INPUT/OUTPUT PARAMETERS:
00077 !
00078       integer, intent (InOut)             :: method_id
00079 
00080 !     handle to the defined coordinate points
00081 !
00082 ! !OUTPUT PARAMETERS:
00083 !
00084       integer, Intent (Out)               :: ierror
00085 
00086 !     Returns the error code of prism_set_points_3d_real_223;
00087 !             ierror = 0 : No error
00088 !             ierror > 0 : Severe error
00089 !
00090 ! !DESCRIPTION:
00091 !
00092 ! Subroutine "prism_set_points_3d_real_223" defines the localisation
00093 ! of center 3 coordinate arrays of a grid covering a 3D physical space
00094 ! for the grid which has grid id "grid_id". It's a simple driver
00095 ! interface in order to support overloadig for the silly Fortran 95
00096 ! standard.
00097 !
00098 !
00099 ! !REVISION HISTORY:
00100 !
00101 !   Date      Programmer   Description
00102 ! ----------  ----------   -----------
00103 ! 01.12.03    H. Ritzdorf  created
00104 !
00105 !EOP
00106 !----------------------------------------------------------------------
00107 !
00108 ! $Id: prism_set_points_3d_real_223.F90 2740 2010-11-17 17:03:49Z hanke $
00109 ! $Author: hanke $
00110 !
00111   Character(len=len_cvs_string), save :: mycvs = 
00112       '$Id: prism_set_points_3d_real_223.F90 2740 2010-11-17 17:03:49Z hanke $'
00113 !
00114 !----------------------------------------------------------------------
00115 
00116 #ifdef VERBOSE
00117       print 9990, trim(ch_id)
00118       call psmile_flushstd
00119 #endif /* VERBOSE */
00120 
00121       call psmile_store_data_points_3d_re ( method_id, point_name,     &
00122                 grid_id, points_actual_shape,                          &
00123                 points_1st_array, points_2nd_array, points_3rd_array,  &
00124                 (/size(points_1st_array), size(points_2nd_array),      &
00125                 size(points_3rd_array)/), new_points, ierror )
00126 
00127 #ifdef VERBOSE
00128       print 9980, trim(ch_id), ierror
00129       call psmile_flushstd
00130 #endif /* VERBOSE */
00131 
00132 9990 format (1x, a, ': prism_set_points_3d_real_223: ')
00133 9980 format (1x, a, ': prism_set_points_3d_real_223: eof ierror =', i5)
00134 
00135       end subroutine prism_set_points_3d_real_223

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1