Changeset 4265


Ignore:
Timestamp:
Sep 21, 2022, 9:58:03 AM (20 months ago)
Author:
dcugnet
Message:

Add modifications for sequantial version of dynetat0 + fix in reprobus case.

Location:
LMDZ6/trunk/libf
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dyn3d/dynetat0.F90

    r4193 r4265  
    4242  INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase
    4343  REAL    :: time, tab_cntrl(length)               !--- RUN PARAMS TABLE
     44  LOGICAL :: lOldHNO3
    4445!-------------------------------------------------------------------------------
    4546  modname="dynetat0"
     
    127128
    128129!--- Tracers
     130  lOldHNO3=.FALSE.
     131#ifdef REPROBUS
     132  !--- Old convention: HNO3 = g+l and HNO3_g = g ; new convention: HNO3tot = g+l and HNO3 = g
     133  lOldHNO3 = NF90_INQ_VARID(fID,var,vID), "inq", 'HNO3tot') /= NF90_NoErr
     134#endif
    129135  DO iq=1,nqtot
    130136    var = tracers(iq)%name
    131137    oldVar = new2oldName(var)
    132138    !--------------------------------------------------------------------------------------------------------------------------
    133     IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr) THEN                                 !=== REGULAR CASE
     139    IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lOldHNO3) THEN             !=== REGULAR CASE
    134140      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
    135141    !--------------------------------------------------------------------------------------------------------------------------
     
    137143      CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname)
    138144      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",oldVar)
     145    !--------------------------------------------------------------------------------------------------------------------------
     146#ifdef REPROBUS
     147    ELSE IF(NF90_INQ_VARID(fID, 'HNO3_g', vID) == NF90_NoErr .AND. lOldHNO3.AND.var=='HNO3') THEN
     148      CALL msg('Tracer <HNO3_g> is used for <HNO3> (old convention)', modname)           !=== REPROBUS: HNO3_g INSTEAD OF HNO3
     149      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
     150    ELSE IF(NF90_INQ_VARID(fID, 'HNO3', vID)lOldHNO3 .AND. var == 'HNO3tot') THEN
     151      CALL msg('Tracer <HNO3> is used for <HNO3tot> (old convention)', modname)          !=== REPROBUS: HNO3 INSTEAD OF HNO3tot
     152      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
     153#endif
    139154    !--------------------------------------------------------------------------------------------------------------------------
    140155#ifdef INCA
  • LMDZ6/trunk/libf/dyn3dmem/dynetat0_loc.F90

    r4264 r4265  
    152152!--- Tracers
    153153  ALLOCATE(q_glo(ip1jmp1,llm))
     154  lOldHNO3=.FALSE.
    154155#ifdef REPROBUS
    155 !--- Old convention: HNO3 = g+l and HNO3_g = g ; new convention: HNO3tot = g+l and HNO3 = g
     156  !--- Old convention: HNO3 = g+l and HNO3_g = g ; new convention: HNO3tot = g+l and HNO3 = g
    156157  lOldHNO3 = NF90_INQ_VARID(fID,var,vID), "inq", 'HNO3tot') /= NF90_NoErr
    157158#endif
     
    159160    var = tracers(iq)%name
    160161    oldVar = new2oldName(var)
     162    !--------------------------------------------------------------------------------------------------------------------------
     163    IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lOldHNO3) THEN             !=== REGULAR CASE
     164      CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
     165    !--------------------------------------------------------------------------------------------------------------------------
     166    ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== OLD NAME
     167      CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname)
     168      CALL get_var2(oldVar, q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
     169    !--------------------------------------------------------------------------------------------------------------------------
    161170#ifdef REPROBUS
    162     IF(lOldHNO3 .AND. var == 'HNO3') THEN                                                !=== REPROBUS: HNO3_g INSTEAD OF HNO3
     171    ELSE IF(lOldHNO3 .AND. var == 'HNO3') THEN                                           !=== REPROBUS: HNO3_g INSTEAD OF HNO3
    163172      CALL msg('Tracer <HNO3_g> is used for <HNO3> (old convention)', modname)
    164173      CALL get_var2( 'HNO3_g', q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
     
    167176      CALL get_var2( 'HNO3', q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    168177#endif
    169     !--------------------------------------------------------------------------------------------------------------------------
    170     ELSE IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr) THEN                            !=== REGULAR CASE
    171       CALL get_var2(var,q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    172     !--------------------------------------------------------------------------------------------------------------------------
    173     ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN                         !=== OLD NAME
    174       CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname)
    175       CALL get_var2(oldVar, q_glo); q(ijb_u:ije_u,:,iq)=q_glo(ijb_u:ije_u,:)
    176     !--------------------------------------------------------------------------------------------------------------------------
    177178#ifdef INCA
    178179    ELSE IF(NF90_INQ_VARID(fID, 'OX',   vID) == NF90_NoErr .AND. var == 'O3') THEN       !=== INCA: OX INSTEAD OF O3
Note: See TracChangeset for help on using the changeset viewer.