Ignore:
Timestamp:
Sep 21, 2022, 9:35:28 AM (3 years ago)
Author:
dcugnet
Message:

Fixes for INCO, CO2i AND REPROBUS, mostly because some sections are specific to type_trac=="lmdz",
which is not always equivalent to ANY(types_trac=='lmdz).
Also force the water phases to get tracers(*)%component='lmdz' so that nqo can be correctly computed.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90

    r4143 r4263  
    4646  REAL,             ALLOCATABLE :: ucov_glo(:,:),    q_glo(:,:), phis_glo(:)
    4747  REAL,             ALLOCATABLE :: teta_glo(:,:)
     48  LOGICAL :: lOldHNO3
    4849!-------------------------------------------------------------------------------
    4950  modname="dynetat0_loc"
     
    151152!--- Tracers
    152153  ALLOCATE(q_glo(ip1jmp1,llm))
     154#ifdef REPROBUS
     155!--- Old convention: HNO3 = g+l and HNO3_g = g ; new convention: HNO3tot = g+l and HNO3 = g
     156  lOldHNO3 = NF90_INQ_VARID(fID,var,vID), "inq", 'HNO3tot') /= NF90_NoErr
     157#endif
    153158  DO iq=1,nqtot
    154159    var = tracers(iq)%name
     
    166171      CALL msg('Tracer <O3> is missing => initialized to <OX>', modname)
    167172      CALL get_var2( 'OX' , q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    168     !--------------------------------------------------------------------------------------------------------------------------
     173#endif
     174    !--------------------------------------------------------------------------------------------------------------------------
     175#ifdef REPROBUS
     176    ELSE IF(lOldHNO3 .AND. var == 'HNO3') THEN                                           !=== REPROBUS: HNO3_g INSTEAD OF HNO3
     177      CALL msg('Tracer <HNO3_g> is used for <HNO3> (old convention)', modname)
     178      CALL get_var2( 'HNO3_g', q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
     179    ELSE IF(lOldHNO3 .AND. var == 'HNO3tot') THEN                                        !=== REPROBUS: HNO3 INSTEAD OF HNO3tot
     180      CALL msg('Tracer <HNO3> is used for <HNO3tot> (old convention)', modname)
     181      CALL get_var2( 'HNO3', q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    169182#endif
    170183    ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN                          !=== WATER ISOTOPES
Note: See TracChangeset for help on using the changeset viewer.