Differences between revisions 1 and 2
Revision 1 as of 2014-12-08 11:50:31
Size: 2564
Editor: NicoleThomas
Comment:
Revision 2 as of 2014-12-08 12:10:49
Size: 3741
Editor: NicoleThomas
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

messy/ClamsRepr (last edited 2018-04-24 11:04:12 by NicoleThomas)