Ignore:
Timestamp:
Feb 22, 2021, 5:28:31 PM (3 years ago)
Author:
dcugnet
Message:

Extension of the tracers management.

The tracers files can be:

1) "traceur.def": old format, with:

  • the number of tracers on the first line
  • one line for each tracer: <tracer name> <hadv> <vadv> [<parent name>]

2) "tracer.def": new format with one section each model component.
3) "tracer_<name>.def": new format with a single section.

The formats 2 and 3 reading is driven by the "type_trac" key, which can be a

coma-separated list of components.

  • Format 2: read the sections from the "tracer.def" file.
  • format 3: read one section each "tracer_<section name>.def" file.
  • the first line of a section is "&<section name>
  • the other lines start with a tracer name followed by <key>=<val> pairs.
  • the "default" tracer name is reserved ; the other tracers of the section inherit its <key>=<val>, except for the keys that are redefined locally.

This format helps keeping the tracers files compact, thanks to the "default"
special tracer and the three levels of factorization:

  • on the tracers names: a tracer name can be a coma-separated list of tracers => all the tracers of the list have the same <key>=<val> properties
  • on the parents names: the value of the "parent" property can be a coma-separated list of tracers => only possible for geographic tagging tracers
  • on the phases: the property "phases" is [g](l][s] (gas/liquid/solid)

Read information is stored in the vector "tracers(:)", of derived type "tra".

"isotopes_params.def" is a similar file, with one section each isotopes family.
It contains a database of isotopes properties ; if there are second generation
tracers (isotopes), the corresponding sections are read.

Read information is stored in the vector "isotopes(:)", of derived type "iso".

The "getKey" function helps to get the values of the parameters stored in
"tracers" or "isotopes".

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/LMDZ-tracers/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r3677 r3852  
    1616  USE mod_phys_lmdz_para, ONLY: klon_omp ! number of columns (on local omp grid)
    1717  USE vertical_layers_mod, ONLY : init_vertical_layers
    18   USE infotrac, ONLY: nqtot,nqo,nbtr,tname,ttext,type_trac,&
    19                       niadv,conv_flg,pbl_flg,solsym,&
    20                       nqfils,nqdesc,nqdesc_tot,iqfils,iqpere,&
    21                       ok_isotopes,ok_iso_verif,ok_isotrac,&
    22                       ok_init_iso,niso_possibles,tnat,&
    23                       alpha_ideal,use_iso,iqiso,iso_num,&
    24                       iso_indnum,zone_num,phase_num,&
    25                       indnum_fn_num,index_trac,&
    26                       niso,ntraceurs_zone,ntraciso
     18  USE infotrac, ONLY: tracers, isotopes, type_trac, solsym, nbtr, niadv, pbl_flg, conv_flg
    2719#ifdef CPP_StratAer
    2820  USE infotrac, ONLY: nbtr_bin, nbtr_sulgas, id_OCS_strat, &
     
    146138
    147139  ! Initialize tracer names, numbers, etc. for physics
    148   CALL init_infotrac_phy(nqtot,nqo,nbtr,tname,ttext,type_trac,&
    149                          niadv,conv_flg,pbl_flg,solsym,&
    150                          nqfils,nqdesc,nqdesc_tot,iqfils,iqpere,&
    151                          ok_isotopes,ok_iso_verif,ok_isotrac,&
    152                          ok_init_iso,niso_possibles,tnat,&
    153                          alpha_ideal,use_iso,iqiso,iso_num,&
    154                          iso_indnum,zone_num,phase_num,&
    155                          indnum_fn_num,index_trac,&
    156                          niso,ntraceurs_zone,ntraciso&
     140  CALL init_infotrac_phy(tracers, isotopes, type_trac, solsym, nbtr, niadv, pbl_flg, conv_flg &
    157141#ifdef CPP_StratAer
    158142                         ,nbtr_bin,nbtr_sulgas&
     
    183167#endif
    184168  END IF
    185   IF (type_trac == 'repr') THEN
    186 #ifdef REPROBUS
    187     call init_reprobus_para( &
    188           nbp_lon,nbp_lat,nbp_lev,klon_glo,mpi_size, &
    189           distrib_phys,communicator)
    190 #endif
    191   ENDIF
    192169
    193170!!$OMP PARALLEL DEFAULT(SHARED) COPYIN(/temps/)
     
    203180          rlonudyn,rlatudyn,rlonvdyn,rlatvdyn)
    204181#endif
    205     IF (type_trac == 'repr') THEN
    206 #ifdef REPROBUS
    207        CALL Init_chem_rep_phys(klon_omp,nbp_lev)
    208 #endif
    209     END IF
    210182  END IF
    211183
Note: See TracChangeset for help on using the changeset viewer.