prism_set_points_3d_real_221.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_221
00010 !
00011 ! !INTERFACE:
00012 
00013       subroutine prism_set_points_3d_real_221 ( 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_221
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 !     e.g. for irregular lon-lat grids, but regular (level) in the vertical
00068 
00069       logical, Intent (In)                :: new_points
00070 
00071 !     Logical to indicate whether new points are specified (.true.) or old points
00072 !     shall be overwritten
00073 !
00074 ! !INPUT/OUTPUT PARAMETERS:
00075 !
00076       integer, intent (InOut)             :: method_id
00077 
00078 !     handle to the defined coordinate points
00079 !
00080 ! !OUTPUT PARAMETERS:
00081 !
00082       integer, intent (Out)               :: ierror
00083 
00084 !     Returns the error code of prism_set_points_3d_real_221;
00085 !             ierror = 0 : No error
00086 !             ierror > 0 : Severe error
00087 !
00088 ! !DESCRIPTION:
00089 !
00090 ! Subroutine "prism_set_points_3d_real_221" defines the localisation
00091 ! of the center 3 coordinate arrays of a grid covering a 3D physical space
00092 ! for the grid which has grid id "grid_id". It's a simple driver
00093 ! interface in order to support overloadig for the silly Fortran 95
00094 ! standard.
00095 !
00096 !
00097 ! !REVISION HISTORY:
00098 !
00099 !   Date      Programmer   Description
00100 ! ----------  ----------   -----------
00101 ! 01.12.03    H. Ritzdorf  created
00102 !
00103 !EOP
00104 !----------------------------------------------------------------------
00105 !
00106 ! $Id: prism_set_points_3d_real_221.F90 2740 2010-11-17 17:03:49Z hanke $
00107 ! $Author: hanke $
00108 !
00109   Character(len=len_cvs_string), save :: mycvs = 
00110       '$Id: prism_set_points_3d_real_221.F90 2740 2010-11-17 17:03:49Z hanke $'
00111 !
00112 !----------------------------------------------------------------------
00113 
00114 #ifdef VERBOSE
00115       print 9990, trim(ch_id)
00116       call psmile_flushstd
00117 #endif /* VERBOSE */
00118 
00119       call psmile_store_data_points_3d_re ( method_id, point_name,     &
00120                 grid_id, points_actual_shape,                          &
00121                 points_1st_array, points_2nd_array, points_3rd_array,  &
00122                 (/size(points_1st_array), size(points_2nd_array),      &
00123                 size(points_3rd_array)/), new_points, ierror )
00124 
00125 #ifdef VERBOSE
00126       print 9980, trim(ch_id), ierror
00127       call psmile_flushstd
00128 #endif /* VERBOSE */
00129 
00130 9990 format (1x, a, ': prism_set_points_3d_real_221: ')
00131 9980 format (1x, a, ': prism_set_points_3d_real_221: eof ierror =', i5)
00132 
00133       end subroutine prism_set_points_3d_real_221

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1