Ignore:
Timestamp:
Jan 31, 2022, 9:20:17 PM (4 years ago)
Author:
dcugnet
Message:
  • Fix for unadvected tracers (iadv==0)
  • The key %isH2Ofamily, from the derived type "trac_type", is replaced with the more general

key %isInPhysics, which is TRUE for tracers both in "qx" and "tr_seri".

Currently, FALSE for tracers descending on H2O (isotopes and tagging tracers included). Could be set to FALSE
for interactive CO2 (type_trac=='inco') or ice supersaturated cloud content (tranfered to "rneb_seri")

Location:
LMDZ6/trunk/libf/phylmd
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/Dust/phys_output_write_spl_mod.F90

    r4056 r4071  
    16121612           itr = 0
    16131613           DO iq = 1, nqtot
    1614              IF(tracers(iq)%isH2Ofamily) CYCLE
     1614             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    16151615             itr = itr+1
    16161616             CALL histwrite_phy(o_trac(itr), tr_seri(:,:,itr))
  • LMDZ6/trunk/libf/phylmd/Dust/phytracr_spl_mod.F90

    r4056 r4071  
    12621262      itr = 0
    12631263      DO iq = 1, nqtot
    1264          IF(tracers(iq)%isH2Ofamily) CYCLE
     1264         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    12651265         itr = itr+1
    12661266         write(str2,'(i2.2)') itr
     
    14191419        itr = 0
    14201420        do iq=1,nqtot
    1421           IF(tracers(iq)%isH2Ofamily) CYCLE
     1421          IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    14221422          itr = itr+1
    14231423          print *, itr, TRIM(tracers(iq)%name)
  • LMDZ6/trunk/libf/phylmd/Dust/splaeropt_5wv_rrtm.F90

    r4056 r4071  
    114114  itr = 0
    115115  DO iq = 1, nqtot
    116     IF(tracers(iq)%isH2Ofamily) CYCLE
     116    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    117117    itr = itr+1
    118118    SELECT CASE(tracers(iq)%name)
  • LMDZ6/trunk/libf/phylmd/Dust/splaeropt_6bands_rrtm.F90

    r4056 r4071  
    167167  itr = 0
    168168  DO iq = 1, nqtot
    169     IF(tracers(iq)%isH2Ofamily) CYCLE
     169    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    170170    itr = itr+1
    171171    SELECT CASE(tracers(iq)%name)
  • LMDZ6/trunk/libf/phylmd/Dust/splaeropt_lw_rrtm.F90

    r4056 r4071  
    5757    itr = 0
    5858    DO iq = 1, nqtot
    59       IF(tracers(iq)%isH2Ofamily) CYCLE
     59      IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    6060      itr = itr+1
    6161      SELECT CASE(tracers(iq)%name)
  • LMDZ6/trunk/libf/phylmd/Dust/splaerosol_optic_rrtm.F90

    r4056 r4071  
    5252  itr = 0
    5353  DO iq = 1, nqtot
    54     IF(tracers(iq)%isH2Ofamily) CYCLE
     54    IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    5555    itr = itr+1
    5656    IF(tracers(iq)%name/='FINE') THEN
  • LMDZ6/trunk/libf/phylmd/infotrac_phy.F90

    r4056 r4071  
    130130      nbtr_bin    = COUNT([(tracers(iq)%name(1:3)=='BIN', iq=1, nqtot)])
    131131      nbtr_sulgas = COUNT([(tracers(iq)%name(1:3)=='GAS', iq=1, nqtot)])
    132       tnames = PACK(tracers(:)%name, MASK=.NOT.tracers(:)%isH2Ofamily)
     132      tnames = PACK(tracers(:)%name, MASK=tracers(:)%isInPhysics)
    133133      id_BIN01_strat = strIdx(tnames, 'BIN01'   )
    134134      id_OCS_strat   = strIdx(tnames, 'GASOSC'  )
  • LMDZ6/trunk/libf/phylmd/phyetat0.F90

    r4059 r4071  
    452452     it = 0
    453453     DO iq = 1, nqtot
    454         IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     454        IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    455455        it = it+1
    456456        found=phyetat0_get(1,trs(:,it),"trs_"//TRIM(tracers(iq)%name), &
  • LMDZ6/trunk/libf/phylmd/phyredem.F90

    r4059 r4071  
    330330       it = 0
    331331       DO iq = 1, nqtot
    332           IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     332          IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    333333          it = it+1
    334334          CALL put_field(pass,"trs_"//tracers(iq)%name, "", trs(:, it))
  • LMDZ6/trunk/libf/phylmd/phys_output_mod.F90

    r4056 r4071  
    470470          itr = 0
    471471          DO iq = 1, nqtot
    472             IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     472            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    473473            itr = itr + 1
    474474            dn = 'd'//TRIM(tracers(iq)%name)//'_'
     
    526526
    527527!  DO iq=1,nqtot
    528 !    IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     528!    IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    529529!    WRITE(*,'(a,i1,a,10i3)')'trac(',iq,')%flag = ',o_trac(iq)%flag
    530530!    WRITE(*,'(a,i1,a)')'trac(',iq,')%name = '//TRIM(o_trac(iq)%name)
  • LMDZ6/trunk/libf/phylmd/phys_output_write_mod.F90

    r4070 r4071  
    541541          ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
    542542          DO iq = 1, nqtot
    543             IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     543            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    544544            dn = 'd'//TRIM(tracers(iq)%name)//'_'
    545545            WRITE (lunout,*) 'XIOS var=', nqo, iq, nqtot, tracers(iq)%name
     
    595595          ! On boucle sur les traceurs pour les ajouter au groupe puis fixer les attributs
    596596          DO iq = 1, nqtot
    597             IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     597            IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    598598
    599599            unt = "kg m-2"
     
    24702470           itr = 0
    24712471           DO iq = 1, nqtot
    2472              IF(tracers(iq)%isH2Ofamily) CYCLE
     2472             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    24732473             itr = itr + 1
    24742474!            write(*,*) 'phys_output_write_mod 2337: itr=',itr
     
    25032503           itr = 0
    25042504           DO iq = 1, nqtot
    2505              IF(tracers(iq)%isH2Ofamily) CYCLE
     2505             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    25062506             itr = itr + 1
    25072507!            write(*,*) 'phys_output_write_mod 2370: itr=',itr
     
    25312531
    25322532         IF (type_trac == 'inco') THEN
     2533           itr = 0
    25332534           DO iq = 1, nqtot
    2534              IF(tracers(iq)%isH2Ofamily .OR. .NOT.tracers(iq)%isAdvected) CYCLE
     2535             IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    25352536             itr = itr+1
    25362537             IF(tracers(iq)%component /= 'co2i') CYCLE
  • LMDZ6/trunk/libf/phylmd/physiq_mod.F90

    r4069 r4071  
    22702270       itr = 0
    22712271       DO iq = 1, nqtot
    2272          IF(tracers(iq)%isH2Ofamily) CYCLE
     2272         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    22732273         itr = itr+1
    22742274          DO  k = 1, klev
     
    22902290       itr = 0
    22912291       do iq = 1, nqtot
    2292          IF(tracers(iq)%isH2Ofamily) CYCLE
     2292         IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    22932293         itr = itr+1
    22942294         tr_ancien(:,:,itr)=tr_seri(:,:,itr)       
     
    51175117       itr = 0
    51185118       DO iq = 1, nqtot
    5119           IF(tracers(iq)%isH2Ofamily) CYCLE
     5119          IF(.NOT.tracers(iq)%isInPhysics) CYCLE
    51205120          itr = itr+1
    51215121          DO  k = 1, klev
  • LMDZ6/trunk/libf/phylmd/traclmdz_mod.F90

    r4056 r4071  
    175175    it = 0
    176176    DO iq = 1, nqtot
    177        IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     177       IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    178178       it = it+1
    179179       SELECT CASE(strLower(tracers(iq)%name))
     
    262262    it = 0
    263263    DO iq = 1, nqtot
    264        IF(.NOT.tracers(iq)%isAdvected .OR. tracers(iq)%isH2Ofamily) CYCLE
     264       IF(.NOT.(tracers(iq)%isAdvected .AND. tracers(iq)%isInPhysics)) CYCLE
    265265       it = it+1
    266266       ! Test if tracer is zero everywhere.
Note: See TracChangeset for help on using the changeset viewer.