⇤ ← Revision 1 as of 2014-12-08 11:50:31
Size: 2564
Comment:
|
Size: 3741
Comment:
|
Deletions are marked like this. | Additions are marked like this. |
Line 34: | Line 34: |
INTEGER, SAVE, PUBLIC :: REPR_3DINP_CLAMS = REPR_UNDEF | INTEGER, SAVE, PUBLIC :: REPR_3DINP_CLAMS = REPR_UNDEF |
Line 81: | Line 81: |
* '''SCALAR''' {{{ CALL new_representation(status, SCALAR, 'SCALAR' & , rank = 0, link = '----', dctype = 0 & , dimension_ids = scdim & , ldimlen = scdim & , axis = '----' & ) }}} Variablen mit dieser Representation: * In ''messy_clams_si.f90'' * '''grid_switch''' * '''year_uvfirst''', '''month_uvfirst''', '''day_uvfirst''', '''hour_uvfirst''' * In ''messy_clamstraj_si.f90'' * '''JULTIME''' * '''REPR_NTASKS''' {{{ CALL new_representation(status, REPR_NTASKS, 'REPR_NTASKS' & , rank = 1, link = 'x---', dctype = DC_IX & , dimension_ids = (/ DIMID_NTASKS /) & , ldimlen = (/ 1 /) & , axis = 'N---' & ) }}} Variable mit dieser Representation in ''messy_clams_si.f90'': * '''dnparts''': Eindimensionales Feld der Länge NTASKS; Index-verteilt auf die Tasks, so dass jede Task ''dnparts'' (Anz. der von der Task zu bearbeitenden Trajektorien) als Skalar nutzen kann |
MESSy/CLaMS: Dimensionen und Representationen für Channels
Allgemeines
Channel-Objekte sind immer vom Typ REAL(DP)
Verwendete parallele Zerlegungstypen (dctype)
DC_BC = 0 ! BROADCAST (IO-PE ONLY) -> keine Zerlegung
- DC_IX = 4 ! INDEX
Deklaration der Dimensionen und Representationen
In bmil/messy_main_channel_bi.f90
Dimensionen
INTEGER, SAVE, PUBLIC :: DIMID_TIME = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_LEV = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_LON = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_LAT = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_TRAJ = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_NTASKS = DIMID_UNDEF INTEGER, SAVE, PUBLIC :: DIMID_SHUFFLE = DIMID_UNDEF
Representationen
INTEGER, SAVE, PUBLIC :: REPR_LG_CLAMS = REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_CLAMS_SHUFFLE= REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_LEVARR_CLAMS = REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_3DINP_CLAMS = REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_3DINP_CLAMS2 = REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_2D_CLAMSTEST = REPR_UNDEF INTEGER, SAVE, PUBLIC :: REPR_NTASKS = REPR_UNDEF
Initialisieren der Dimensionen und Representationen
In bmil/messy_main_channel_clams.inc
Dimensionen
Initialisieren mit new_dimension
ID |
Name |
Länge |
DIMID_TIME |
time |
1 |
DIMID_LON |
LON |
nx |
DIMID_LAT |
LAT |
ny |
DIMID_LEV |
LEV |
nz |
DIMID_TRAJ |
NPARTS |
nparts_max |
DIMID_SHUFFLE |
NPARTS_SHUFFLE |
nparts_max_shuffle |
DIMID_NTASKS |
ntasks |
ntasks |
DIMID_WAVE |
WAVELENGTH |
jpschi |
DIMID_DISSOC_LEV |
DISSOC_LEV |
jpslevall |
DIMID_DISSOC_LEVC |
DISSOC_LEVC |
jpslev |
DIMID_DISSOC_LAT |
DISSOC_LAT |
jpschi |
DIMID_DISSOC_SZA |
DISSOC_SZA |
jpschi |
DIMID_DISSOC_NUMJ |
DISSOC_NUMJ |
numj_max |
Dimensionsvariablen
Anlegen mit add_dimension_variable
Name der Dimension |
Name der Dimensionsvariablen |
Werte der Dimensionsvariablen |
time |
time |
0.0 |
time |
YYYYMMDD |
yyyymmdd |
time |
dt |
delta_time |
time |
nstep |
REAL(current_time_step, DP) |
LON |
LON |
longrid |
LAT |
LAT |
latgrid |
LEV |
LEV |
levelgrid(1:nz) |
Representationen
Anlegen mit new_representation
SCALAR
CALL new_representation(status, SCALAR, 'SCALAR' & , rank = 0, link = '----', dctype = 0 & , dimension_ids = scdim & , ldimlen = scdim & , axis = '----' & )
Variablen mit dieser Representation:In messy_clams_si.f90
grid_switch
year_uvfirst, month_uvfirst, day_uvfirst, hour_uvfirst
In messy_clamstraj_si.f90
JULTIME
REPR_NTASKS
CALL new_representation(status, REPR_NTASKS, 'REPR_NTASKS' & , rank = 1, link = 'x---', dctype = DC_IX & , dimension_ids = (/ DIMID_NTASKS /) & , ldimlen = (/ 1 /) & , axis = 'N---' & )
Variable mit dieser Representation in messy_clams_si.f90:
dnparts: Eindimensionales Feld der Länge NTASKS; Index-verteilt auf die Tasks, so dass jede Task dnparts (Anz. der von der Task zu bearbeitenden Trajektorien) als Skalar nutzen kann