Changeset 4301 for LMDZ6/trunk/libf/dyn3d
- Timestamp:
- Oct 20, 2022, 1:57:21 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/dynetat0.F90
r4270 r4301 10 10 USE netcdf, ONLY: NF90_OPEN, NF90_NOWRITE, NF90_INQ_VARID, & 11 11 NF90_CLOSE, NF90_GET_VAR, NF90_NoErr 12 USE readTracFiles_mod, ONLY: new2old Name12 USE readTracFiles_mod, ONLY: new2oldH2O, newHNO3, oldHNO3 13 13 USE control_mod, ONLY: planet_type 14 14 USE assert_eq_m, ONLY: assert_eq … … 42 42 INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase 43 43 REAL :: time, tab_cntrl(length) !--- RUN PARAMS TABLE 44 LOGICAL :: l OldHNO3, ll44 LOGICAL :: lSkip, ll 45 45 !------------------------------------------------------------------------------- 46 46 modname="dynetat0" … … 130 130 ll=.FALSE. 131 131 #ifdef REPROBUS 132 !--- .TRUE. for old convention: HNO3 = g+l and HNO3_g = g (new convention: HNO3tot = g+l and HNO3 = g) 133 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr 132 ll = NF90_INQ_VARID(fID, 'HNO3tot', vID) /= NF90_NoErr !--- DETECT OLD REPRO start.nc FILE 134 133 #endif 135 134 DO iq=1,nqtot 136 135 var = tracers(iq)%name 137 oldVar = new2oldName(var) 138 lOldHNO3 = ll .AND. (var == 'HNO3' .OR. var == 'HNO3_g') 139 !-------------------------------------------------------------------------------------------------------------------------- 140 IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lOldHNO3) THEN !=== REGULAR CASE 136 oldVar = new2oldH2O(var) 137 lSkip = ll .AND. var == 'HNO3' !--- FORCE "HNO3_g" READING FOR "HNO3" 138 #ifdef REPROBUS 139 ix = strIdx(newHNO3, var); IF(ix /= 0) oldVar = oldHNO3(ix) !--- REPROBUS HNO3 exceptions 140 #endif 141 #ifdef INCA 142 IF(var == 'O3') oldVar = 'OX' !--- DEAL WITH INCA OZONE EXCEPTION 143 #endif 144 !-------------------------------------------------------------------------------------------------------------------------- 145 IF(NF90_INQ_VARID(fID, var, vID) == NF90_NoErr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE 141 146 CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var) 142 147 !-------------------------------------------------------------------------------------------------------------------------- 143 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN !=== OLDNAME148 ELSE IF(NF90_INQ_VARID(fID, oldVar, vID) == NF90_NoErr) THEN !=== TRY WITH ALTERNATE NAME 144 149 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname) 145 150 CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",oldVar) 146 151 !-------------------------------------------------------------------------------------------------------------------------- 147 #ifdef REPROBUS148 ELSE IF(NF90_INQ_VARID(fID, 'HNO3_g', vID) == NF90_NoErr .AND. lOldHNO3 .AND. var == 'HNO3' ) THEN149 CALL msg('Tracer <HNO3_g> is used for <HNO3> (old convention)', modname) !=== REPROBUS: HNO3_g INSTEAD OF HNO3150 CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)151 ELSE IF(NF90_INQ_VARID(fID, 'HNO3', vID) == NF90_NoErr .AND. lOldHNO3 .AND. var == 'HNO3tot') THEN152 CALL msg('Tracer <HNO3> is used for <HNO3tot> (old convention)', modname) !=== REPROBUS: HNO3 INSTEAD OF HNO3tot153 CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)154 #endif155 !--------------------------------------------------------------------------------------------------------------------------156 #ifdef INCA157 ELSE IF(NF90_INQ_VARID(fID, 'OX', vID) == NF90_NoErr .AND. var == 'O3') THEN !=== INCA: OX INSTEAD OF O3158 CALL msg('Tracer <O3> is missing => initialized to <OX>', modname)159 CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",'OX')160 !--------------------------------------------------------------------------------------------------------------------------161 #endif162 152 ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN !=== WATER ISOTOPES 163 153 iName = tracers(iq)%iso_iName
Note: See TracChangeset
for help on using the changeset viewer.