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

Generated on 18 Mar 2011 for Oasis4 by  doxygen 1.6.1