Changeset 5182 for LMDZ6/branches
- Timestamp:
- Sep 10, 2024, 4:25:29 PM (5 months ago)
- Location:
- LMDZ6/branches/Amaury_dev/libf
- Files:
-
- 1 deleted
- 75 edited
- 1 copied
- 2 moved
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/addfi.F90
r5159 r5182 3 3 SUBROUTINE addfi(pdt, leapf, forward, pucov, pvcov, pteta, pq, pps, pdufi, pdvfi, pdhfi, pdqfi, pdpfi) 4 4 5 USE infotrac, ONLY: nqtot5 USE lmdz_infotrac, ONLY: nqtot 6 6 USE control_mod, ONLY: planet_type 7 7 USE lmdz_ssum_scopy, ONLY: ssum -
LMDZ6/branches/Amaury_dev/libf/dyn3d/advtrac.f90
r5159 r5182 9 9 ! M.A Filiberti (04/2002) 10 10 11 USE infotrac, ONLY: nqtot, tracers, isoCheck11 USE lmdz_infotrac, ONLY: nqtot, tracers, isoCheck 12 12 USE control_mod, ONLY: iapp_tracvl, day_step 13 13 USE comconst_mod, ONLY: dtvr -
LMDZ6/branches/Amaury_dev/libf/dyn3d/caladvtrac.F90
r5159 r5182 7 7 flxw, pk) 8 8 9 USE infotrac, ONLY: nqtot9 USE lmdz_infotrac, ONLY: nqtot 10 10 USE control_mod, ONLY: iapp_tracvl, planet_type 11 11 USE comconst_mod, ONLY: dtvr -
LMDZ6/branches/Amaury_dev/libf/dyn3d/check_isotopes.F90
r5159 r5182 1 1 SUBROUTINE check_isotopes_seq(q, ip1jmp1, err_msg) 2 2 USE lmdz_strings, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str 3 USE infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &3 USE lmdz_infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, & 4 4 ntiso, iH2O, nzone, tracers, isoName, itZonIso, getKey 5 5 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/conf_gcm.f90
r5159 r5182 5 5 USE control_mod 6 6 USE IOIPSL 7 USE infotrac, ONLY: type_trac7 USE lmdz_infotrac, ONLY: type_trac 8 8 USE lmdz_assert, ONLY: assert 9 9 USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, & -
LMDZ6/branches/Amaury_dev/libf/dyn3d/dynredem.F90
r5159 r5182 6 6 USE IOIPSL 7 7 USE lmdz_strings, ONLY: maxlen 8 USE infotrac, ONLY: nqtot, tracers8 USE lmdz_infotrac, ONLY: nqtot, tracers 9 9 USE netcdf, ONLY: nf90_create, nf90_def_dim, nf90_inq_varid, nf90_global, & 10 10 nf90_close, nf90_put_att, nf90_unlimited, nf90_clobber, & … … 160 160 !------------------------------------------------------------------------------- 161 161 USE lmdz_strings, ONLY: maxlen 162 USE infotrac, ONLY: nqtot, tracers, type_trac162 USE lmdz_infotrac, ONLY: nqtot, tracers, type_trac 163 163 USE control_mod 164 164 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_get_var, nf90_inq_varid, & -
LMDZ6/branches/Amaury_dev/libf/dyn3d/gcm.F90
r5159 r5182 9 9 10 10 USE lmdz_filtreg, ONLY: inifilr 11 USE infotrac, ONLY: nqtot, init_infotrac11 USE lmdz_infotrac, ONLY: nqtot, init_infotrac 12 12 USE control_mod 13 13 USE mod_const_mpi, ONLY: COMM_LMDZ … … 19 19 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_PHYS 20 20 USE lmdz_description, ONLY: descript 21 USE lmdz_dynetat0, ONLY: dynetat0 21 22 22 23 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 212 213 ! if (planet_type.EQ."earth") THEN 213 214 ! Load an Earth-format start file 214 CALL dynetat0("start.nc", vcov, ucov, & 215 teta, q, masse, ps, phis, time_0) 215 CALL dynetat0("start.nc", vcov, ucov, teta, q, masse, ps, phis, time_0) 216 216 ! endif ! of if (planet_type.EQ."earth") 217 217 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/iniacademic.F90
r5159 r5182 4 4 5 5 USE lmdz_filtreg, ONLY: inifilr 6 USE infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName6 USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName 7 7 USE control_mod, ONLY: day_step, planet_type 8 8 USE exner_hyb_m, ONLY: exner_hyb -
LMDZ6/branches/Amaury_dev/libf/dyn3d/leapfrog.F90
r5159 r5182 8 8 !IM : pour sortir les param. du modele dans un fis. netcdf 110106 9 9 USE IOIPSL 10 USE infotrac, ONLY: nqtot, isoCheck10 USE lmdz_infotrac, ONLY: nqtot, isoCheck 11 11 USE guide_mod, ONLY: guide_main 12 12 USE lmdz_write_field, ONLY: writefield -
LMDZ6/branches/Amaury_dev/libf/dyn3d/lmdz_dynetat0.f90
r5181 r5182 1 SUBROUTINE dynetat0(fichnom,vcov,ucov,teta,q,masse,ps,phis,time) 2 3 !------------------------------------------------------------------------------- 4 ! Authors: P. Le Van , L.Fairhead 5 !------------------------------------------------------------------------------- 6 ! Purpose: Initial state reading. 7 !------------------------------------------------------------------------------- 8 USE infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName 9 USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str 10 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inq_varid, & 11 nf90_close, nf90_get_var, nf90_noerr 12 USE lmdz_readTracFiles, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey 13 USE control_mod, ONLY: planet_type 14 USE lmdz_assert_eq, ONLY: assert_eq 15 USE comvert_mod, ONLY: pa,preff 16 USE comconst_mod, ONLY: cpp, daysec, dtvr, g, im, jm, kappa, lllm, omeg, rad 17 USE logic_mod, ONLY: fxyhypb, ysinus 18 USE serre_mod, ONLY: clon, clat, grossismx, grossismy 19 USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn, start_time 20 USE ener_mod, ONLY: etot0,ptot0,ztot0,stot0,ang0 21 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA 22 USE lmdz_description, ONLY: descript 23 USE lmdz_iniprint, ONLY: lunout, prt_level 24 USE lmdz_comgeom2 25 26 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 27 USE lmdz_paramet 28 IMPLICIT NONE 29 30 31 !=============================================================================== 32 ! Arguments: 33 CHARACTER(LEN=*), INTENT(IN) :: fichnom !--- FILE NAME 34 REAL, INTENT(OUT) :: vcov(iip1,jjm, llm) !--- V COVARIANT WIND 35 REAL, INTENT(OUT) :: ucov(iip1,jjp1,llm) !--- U COVARIANT WIND 36 REAL, INTENT(OUT) :: teta(iip1,jjp1,llm) !--- POTENTIAL TEMP. 37 REAL, INTENT(OUT) :: q(iip1,jjp1,llm,nqtot) !--- TRACERS 38 REAL, INTENT(OUT) :: masse(iip1,jjp1,llm) !--- MASS PER CELL 39 REAL, INTENT(OUT) :: ps(iip1,jjp1) !--- GROUND PRESSURE 40 REAL, INTENT(OUT) :: phis(iip1,jjp1) !--- GEOPOTENTIAL 41 !=============================================================================== 42 ! Local variables: 43 CHARACTER(LEN=maxlen) :: mesg, var, modname, oldVar 44 INTEGER, PARAMETER :: length=100 45 INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase 46 REAL :: time, tnat, alpha_ideal, tab_cntrl(length) !--- RUN PARAMS TABLE 47 LOGICAL :: lSkip, ll 48 LOGICAL,PARAMETER :: tnat1=.TRUE. 49 !------------------------------------------------------------------------------- 50 modname="dynetat0" 51 52 !--- Initial state file opening 53 var=fichnom 54 CALL err(nf90_open(var,nf90_nowrite,fID),"open",var) 55 CALL get_var1("controle",tab_cntrl) 56 57 !!! AS: idecal is a hack to be able to read planeto starts... 58 !!! .... while keeping everything OK for LMDZ EARTH 59 IF(planet_type=="generic") THEN 60 CALL msg('NOTE NOTE NOTE : Planeto-like start files', modname) 61 idecal = 4 62 annee_ref = 2000 63 ELSE 64 CALL msg('NOTE NOTE NOTE : Earth-like start files', modname) 65 idecal = 5 66 annee_ref = tab_cntrl(5) 67 END IF 68 im = tab_cntrl(1) 69 jm = tab_cntrl(2) 70 lllm = tab_cntrl(3) 71 day_ref = tab_cntrl(4) 72 rad = tab_cntrl(idecal+1) 73 omeg = tab_cntrl(idecal+2) 74 g = tab_cntrl(idecal+3) 75 cpp = tab_cntrl(idecal+4) 76 kappa = tab_cntrl(idecal+5) 77 daysec = tab_cntrl(idecal+6) 78 dtvr = tab_cntrl(idecal+7) 79 etot0 = tab_cntrl(idecal+8) 80 ptot0 = tab_cntrl(idecal+9) 81 ztot0 = tab_cntrl(idecal+10) 82 stot0 = tab_cntrl(idecal+11) 83 ang0 = tab_cntrl(idecal+12) 84 pa = tab_cntrl(idecal+13) 85 preff = tab_cntrl(idecal+14) 86 87 clon = tab_cntrl(idecal+15) 88 clat = tab_cntrl(idecal+16) 89 grossismx = tab_cntrl(idecal+17) 90 grossismy = tab_cntrl(idecal+18) 91 92 IF ( tab_cntrl(idecal+19)==1. ) THEN 93 fxyhypb = .TRUE. 94 ! dzoomx = tab_cntrl(25) 95 ! dzoomy = tab_cntrl(26) 96 ! taux = tab_cntrl(28) 97 ! tauy = tab_cntrl(29) 98 ELSE 99 fxyhypb = .FALSE. 100 ysinus = tab_cntrl(idecal+22)==1. 101 END IF 102 103 day_ini = tab_cntrl(30) 104 itau_dyn = tab_cntrl(31) 105 start_time = tab_cntrl(32) 106 107 !------------------------------------------------------------------------------- 108 CALL msg('rad, omeg, g, cpp, kappa = '//TRIM(strStack(real2str([rad,omeg,g,cpp,kappa]))), modname) 109 CALL check_dim(im,iim,'im','im') 110 CALL check_dim(jm,jjm,'jm','jm') 111 CALL check_dim(lllm,llm,'lm','lllm') 112 CALL get_var1("rlonu",rlonu) 113 CALL get_var1("rlatu",rlatu) 114 CALL get_var1("rlonv",rlonv) 115 CALL get_var1("rlatv",rlatv) 116 CALL get_var2("cu" ,cu) 117 CALL get_var2("cv" ,cv) 118 CALL get_var2("aire" ,aire) 119 var="temps" 120 IF(nf90_inq_varid(fID,var,vID)/=nf90_noerr) THEN 121 CALL msg('missing field <temps> ; trying with <Time>', modname) 122 var="Time" 123 CALL err(nf90_inq_varid(fID,var,vID),"inq",var) 124 END IF 125 CALL err(nf90_get_var(fID,vID,time),"get",var) 126 CALL get_var2("phisinit",phis) 127 CALL get_var3("ucov",ucov) 128 CALL get_var3("vcov",vcov) 129 CALL get_var3("teta",teta) 130 CALL get_var3("masse",masse) 131 CALL get_var2("ps",ps) 132 133 !--- Tracers 134 ll=.FALSE. 135 #ifdef REPROBUS 136 ll = nf90_inq_varid(fID, 'HNO3tot', vID) /= nf90_noerr !--- DETECT OLD REPRO start.nc FILE 137 #endif 138 DO iq=1,nqtot 139 var = tracers(iq)%name 140 oldVar = new2oldH2O(var) 141 lSkip = ll .AND. var == 'HNO3' !--- FORCE "HNO3_g" READING FOR "HNO3" 142 #ifdef REPROBUS 143 ix = strIdx(newHNO3, var); IF(ix /= 0) oldVar = oldHNO3(ix) !--- REPROBUS HNO3 exceptions 144 #endif 145 IF (CPPKEY_INCA) THEN 146 IF(var == 'O3') oldVar = 'OX' !--- DEAL WITH INCA OZONE EXCEPTION 147 END IF 148 !-------------------------------------------------------------------------------------------------------------------------- 149 IF(nf90_inq_varid(fID, var, vID) == nf90_noerr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE 150 CALL err(nf90_get_var(fID,vID,q(:,:,:,iq)),"get",var) 151 !-------------------------------------------------------------------------------------------------------------------------- 152 ELSE IF(nf90_inq_varid(fID, oldVar, vID) == nf90_noerr) THEN !=== TRY WITH ALTERNATE NAME 153 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to <'//TRIM(oldVar)//'>', modname) 154 CALL err(nf90_get_var(fID,vID,q(:,:,:,iq)),"get",oldVar) 155 !-------------------------------------------------------------------------------------------------------------------------- 156 ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN !=== WATER ISOTOPES 157 iName = tracers(iq)%iso_iName 158 iPhase = tracers(iq)%iso_iPhase 159 iqParent = tracers(iq)%iqParent 160 IF(tracers(iq)%iso_iZone == 0) THEN 161 IF (tnat1) THEN 162 tnat=1.0 163 alpha_ideal=1.0 164 WRITE(*,*) 'attention dans dynetat0: les alpha_ideal sont a 1' 165 else 166 IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) & 167 CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1) 168 endif 169 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized with a simplified Rayleigh distillation law.', modname) 170 q(:,:,:,iq) = q(:,:,:,iqParent)*tnat*(q(:,:,:,iqParent)/30.e-3)**(alpha_ideal-1.) 171 ELSE 172 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to its parent isotope concentration.', modname) 173 ! Camille 9 mars 2023: attention!! seuls les tags qui correspondent à 174 ! izone=izone_init (définie dans isotrac_mod) sont initialisés comme 175 ! les parents. Sinon, c'est nul. 176 ! j'ai fait ça en attendant, mais il faudrait initialiser proprement en 177 ! remplacant 1 par izone_init dans la ligne qui suit. 178 IF(tracers(iq)%iso_iZone == 1) THEN 179 q(:,:,:,iq) = q(:,:,:,iqIsoPha(iName,iPhase)) 180 ELSE 181 q(:,:,:,iq) = 0. 182 END IF 1 MODULE lmdz_dynetat0 2 IMPLICIT NONE; PRIVATE 3 PUBLIC dynetat0 4 CONTAINS 5 6 SUBROUTINE dynetat0(fichnom, vcov, ucov, teta, q, masse, ps, phis, time) 7 8 !------------------------------------------------------------------------------- 9 ! Authors: P. Le Van , L.Fairhead 10 !------------------------------------------------------------------------------- 11 ! Purpose: Initial state reading. 12 !------------------------------------------------------------------------------- 13 USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName 14 USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str 15 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inq_varid, nf90_close, nf90_get_var, nf90_noerr 16 USE lmdz_readTracFiles, ONLY: new2oldH2O, newHNO3, oldHNO3, getKey 17 USE control_mod, ONLY: planet_type 18 USE lmdz_assert_eq, ONLY: assert_eq 19 USE comvert_mod, ONLY: pa, preff 20 USE comconst_mod, ONLY: cpp, daysec, dtvr, g, im, jm, kappa, lllm, omeg, rad 21 USE logic_mod, ONLY: fxyhypb, ysinus 22 USE serre_mod, ONLY: clon, clat, grossismx, grossismy 23 USE temps_mod, ONLY: annee_ref, day_ini, day_ref, itau_dyn, start_time 24 USE ener_mod, ONLY: etot0, ptot0, ztot0, stot0, ang0 25 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_REPROBUS 26 USE lmdz_description, ONLY: descript 27 USE lmdz_iniprint, ONLY: lunout, prt_level 28 USE lmdz_comgeom2 29 USE lmdz_strings, ONLY: strIdx 30 31 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 32 USE lmdz_paramet 33 IMPLICIT NONE 34 35 36 !=============================================================================== 37 ! Arguments: 38 CHARACTER(LEN = *), INTENT(IN) :: fichnom !--- FILE NAME 39 REAL, INTENT(OUT) :: vcov(iip1, jjm, llm) !--- V COVARIANT WIND 40 REAL, INTENT(OUT) :: ucov(iip1, jjp1, llm) !--- U COVARIANT WIND 41 REAL, INTENT(OUT) :: teta(iip1, jjp1, llm) !--- POTENTIAL TEMP. 42 REAL, INTENT(OUT) :: q(iip1, jjp1, llm, nqtot) !--- TRACERS 43 REAL, INTENT(OUT) :: masse(iip1, jjp1, llm) !--- MASS PER CELL 44 REAL, INTENT(OUT) :: ps(iip1, jjp1) !--- GROUND PRESSURE 45 REAL, INTENT(OUT) :: phis(iip1, jjp1) !--- GEOPOTENTIAL 46 !=============================================================================== 47 ! Local variables: 48 CHARACTER(LEN = maxlen) :: mesg, var, modname, oldVar 49 INTEGER, PARAMETER :: length = 100 50 INTEGER :: iq, fID, vID, idecal, iqParent, iName, iZone, iPhase, ix 51 REAL :: time, tnat, alpha_ideal, tab_cntrl(length) !--- RUN PARAMS TABLE 52 LOGICAL :: lSkip, ll 53 LOGICAL, PARAMETER :: tnat1 = .TRUE. 54 !------------------------------------------------------------------------------- 55 modname = "dynetat0" 56 57 !--- Initial state file opening 58 var = fichnom 59 CALL err(nf90_open(var, nf90_nowrite, fID), "open", var) 60 CALL get_var1("controle", tab_cntrl) 61 62 !!! AS: idecal is a hack to be able to read planeto starts... 63 !!! .... while keeping everything OK for LMDZ EARTH 64 IF(planet_type=="generic") THEN 65 CALL msg('NOTE NOTE NOTE : Planeto-like start files', modname) 66 idecal = 4 67 annee_ref = 2000 68 ELSE 69 CALL msg('NOTE NOTE NOTE : Earth-like start files', modname) 70 idecal = 5 71 annee_ref = tab_cntrl(5) 72 END IF 73 im = tab_cntrl(1) 74 jm = tab_cntrl(2) 75 lllm = tab_cntrl(3) 76 day_ref = tab_cntrl(4) 77 rad = tab_cntrl(idecal + 1) 78 omeg = tab_cntrl(idecal + 2) 79 g = tab_cntrl(idecal + 3) 80 cpp = tab_cntrl(idecal + 4) 81 kappa = tab_cntrl(idecal + 5) 82 daysec = tab_cntrl(idecal + 6) 83 dtvr = tab_cntrl(idecal + 7) 84 etot0 = tab_cntrl(idecal + 8) 85 ptot0 = tab_cntrl(idecal + 9) 86 ztot0 = tab_cntrl(idecal + 10) 87 stot0 = tab_cntrl(idecal + 11) 88 ang0 = tab_cntrl(idecal + 12) 89 pa = tab_cntrl(idecal + 13) 90 preff = tab_cntrl(idecal + 14) 91 92 clon = tab_cntrl(idecal + 15) 93 clat = tab_cntrl(idecal + 16) 94 grossismx = tab_cntrl(idecal + 17) 95 grossismy = tab_cntrl(idecal + 18) 96 97 IF (tab_cntrl(idecal + 19)==1.) THEN 98 fxyhypb = .TRUE. 99 ! dzoomx = tab_cntrl(25) 100 ! dzoomy = tab_cntrl(26) 101 ! taux = tab_cntrl(28) 102 ! tauy = tab_cntrl(29) 103 ELSE 104 fxyhypb = .FALSE. 105 ysinus = tab_cntrl(idecal + 22)==1. 106 END IF 107 108 day_ini = tab_cntrl(30) 109 itau_dyn = tab_cntrl(31) 110 start_time = tab_cntrl(32) 111 112 !------------------------------------------------------------------------------- 113 CALL msg('rad, omeg, g, cpp, kappa = ' // TRIM(strStack(real2str([rad, omeg, g, cpp, kappa]))), modname) 114 CALL check_dim(im, iim, 'im', 'im') 115 CALL check_dim(jm, jjm, 'jm', 'jm') 116 CALL check_dim(lllm, llm, 'lm', 'lllm') 117 CALL get_var1("rlonu", rlonu) 118 CALL get_var1("rlatu", rlatu) 119 CALL get_var1("rlonv", rlonv) 120 CALL get_var1("rlatv", rlatv) 121 CALL get_var2("cu", cu) 122 CALL get_var2("cv", cv) 123 CALL get_var2("aire", aire) 124 var = "temps" 125 IF(nf90_inq_varid(fID, var, vID)/=nf90_noerr) THEN 126 CALL msg('missing field <temps> ; trying with <Time>', modname) 127 var = "Time" 128 CALL err(nf90_inq_varid(fID, var, vID), "inq", var) 129 END IF 130 CALL err(nf90_get_var(fID, vID, time), "get", var) 131 CALL get_var2("phisinit", phis) 132 CALL get_var3("ucov", ucov) 133 CALL get_var3("vcov", vcov) 134 CALL get_var3("teta", teta) 135 CALL get_var3("masse", masse) 136 CALL get_var2("ps", ps) 137 138 !--- Tracers 139 ll = .FALSE. 140 IF (CPPKEY_REPROBUS) THEN 141 ll = nf90_inq_varid(fID, 'HNO3tot', vID) /= nf90_noerr !--- DETECT OLD REPRO start.nc FILE 142 END IF 143 DO iq = 1, nqtot 144 var = tracers(iq)%name 145 oldVar = new2oldH2O(var) 146 lSkip = ll .AND. var == 'HNO3' !--- FORCE "HNO3_g" READING FOR "HNO3" 147 IF (CPPKEY_REPROBUS) THEN 148 ix = strIdx(newHNO3, var); IF(ix /= 0) oldVar = oldHNO3(ix) !--- REPROBUS HNO3 exceptions 183 149 END IF 184 !-------------------------------------------------------------------------------------------------------------------------- 185 ELSE !=== MISSING: SET TO 0 186 CALL msg('Tracer <'//TRIM(var)//'> is missing => initialized to zero', modname) 187 q(:,:,:,iq)=0. 188 !-------------------------------------------------------------------------------------------------------------------------- 189 END IF 190 END DO 191 192 CALL err(nf90_close(fID),"close",fichnom) 193 day_ini=day_ini+INT(time) 194 time=time-INT(time) 150 IF (CPPKEY_INCA) THEN 151 IF(var == 'O3') oldVar = 'OX' !--- DEAL WITH INCA OZONE EXCEPTION 152 END IF 153 !-------------------------------------------------------------------------------------------------------------------------- 154 IF(nf90_inq_varid(fID, var, vID) == nf90_noerr .AND. .NOT.lSkip) THEN !=== REGULAR CASE: AVAILABLE VARIABLE 155 CALL err(nf90_get_var(fID, vID, q(:, :, :, iq)), "get", var) 156 !-------------------------------------------------------------------------------------------------------------------------- 157 ELSE IF(nf90_inq_varid(fID, oldVar, vID) == nf90_noerr) THEN !=== TRY WITH ALTERNATE NAME 158 CALL msg('Tracer <' // TRIM(var) // '> is missing => initialized to <' // TRIM(oldVar) // '>', modname) 159 CALL err(nf90_get_var(fID, vID, q(:, :, :, iq)), "get", oldVar) 160 !-------------------------------------------------------------------------------------------------------------------------- 161 ELSE IF(tracers(iq)%iso_iGroup == iH2O .AND. niso > 0) THEN !=== WATER ISOTOPES 162 iName = tracers(iq)%iso_iName 163 iPhase = tracers(iq)%iso_iPhase 164 iqParent = tracers(iq)%iqParent 165 IF(tracers(iq)%iso_iZone == 0) THEN 166 IF (tnat1) THEN 167 tnat = 1.0 168 alpha_ideal = 1.0 169 WRITE(*, *) 'attention dans dynetat0: les alpha_ideal sont a 1' 170 else 171 IF(getKey('tnat', tnat, isoName(iName)) .OR. getKey('alpha', alpha_ideal, isoName(iName))) & 172 CALL abort_gcm(TRIM(modname), 'missing isotopic parameters', 1) 173 endif 174 CALL msg('Tracer <' // TRIM(var) // '> is missing => initialized with a simplified Rayleigh distillation law.', modname) 175 q(:, :, :, iq) = q(:, :, :, iqParent) * tnat * (q(:, :, :, iqParent) / 30.e-3)**(alpha_ideal - 1.) 176 ELSE 177 CALL msg('Tracer <' // TRIM(var) // '> is missing => initialized to its parent isotope concentration.', modname) 178 ! Camille 9 mars 2023: attention!! seuls les tags qui correspondent à 179 ! izone=izone_init (définie dans isotrac_mod) sont initialisés comme 180 ! les parents. Sinon, c'est nul. 181 ! j'ai fait ça en attendant, mais il faudrait initialiser proprement en 182 ! remplacant 1 par izone_init dans la ligne qui suit. 183 IF(tracers(iq)%iso_iZone == 1) THEN 184 q(:, :, :, iq) = q(:, :, :, iqIsoPha(iName, iPhase)) 185 ELSE 186 q(:, :, :, iq) = 0. 187 END IF 188 END IF 189 !-------------------------------------------------------------------------------------------------------------------------- 190 ELSE !=== MISSING: SET TO 0 191 CALL msg('Tracer <' // TRIM(var) // '> is missing => initialized to zero', modname) 192 q(:, :, :, iq) = 0. 193 !-------------------------------------------------------------------------------------------------------------------------- 194 END IF 195 END DO 196 197 CALL err(nf90_close(fID), "close", fichnom) 198 day_ini = day_ini + INT(time) 199 time = time - INT(time) 195 200 196 201 … … 198 203 199 204 200 SUBROUTINE check_dim(n1,n2,str1,str2) 201 INTEGER, INTENT(IN) :: n1, n2 202 CHARACTER(LEN=*), INTENT(IN) :: str1, str2 203 CHARACTER(LEN=maxlen) :: s1, s2 204 IF(n1/=n2) CALL abort_gcm(TRIM(modname), 'value of "'//TRIM(str1)//'" = '//TRIM(int2str(n1))// & 205 ' read in starting file differs from gcm value of "'//TRIM(str2)//'" = '//TRIM(int2str(n2)), 1) 206 END SUBROUTINE check_dim 207 208 209 SUBROUTINE get_var1(var,v) 210 CHARACTER(LEN=*), INTENT(IN) :: var 211 REAL, INTENT(OUT) :: v(:) 212 CALL err(nf90_inq_varid(fID,var,vID),"inq",var) 213 CALL err(nf90_get_var(fID,vID,v),"get",var) 214 END SUBROUTINE get_var1 215 216 217 SUBROUTINE get_var2(var,v) 218 CHARACTER(LEN=*), INTENT(IN) :: var 219 REAL, INTENT(OUT) :: v(:,:) 220 CALL err(nf90_inq_varid(fID,var,vID),"inq",var) 221 CALL err(nf90_get_var(fID,vID,v),"get",var) 222 END SUBROUTINE get_var2 223 224 225 SUBROUTINE get_var3(var,v) 226 CHARACTER(LEN=*), INTENT(IN) :: var 227 REAL, INTENT(OUT) :: v(:,:,:) 228 CALL err(nf90_inq_varid(fID,var,vID),"inq",var) 229 CALL err(nf90_get_var(fID,vID,v),"get",var) 230 END SUBROUTINE get_var3 231 232 233 SUBROUTINE err(ierr,typ,nam) 234 INTEGER, INTENT(IN) :: ierr !--- NetCDF ERROR CODE 235 CHARACTER(LEN=*), INTENT(IN) :: typ !--- TYPE OF OPERATION 236 CHARACTER(LEN=*), INTENT(IN) :: nam !--- FIELD/FILE NAME 237 IF(ierr==nf90_noerr) RETURN 238 SELECT CASE(typ) 239 CASE('inq'); mesg="Field <"//TRIM(nam)//"> is missing" 240 CASE('get'); mesg="Reading failed for <"//TRIM(nam)//">" 241 CASE('open'); mesg="File opening failed for <"//TRIM(nam)//">" 242 CASE('close'); mesg="File closing failed for <"//TRIM(nam)//">" 243 END SELECT 244 CALL ABORT_gcm(TRIM(modname),TRIM(mesg),ierr) 245 END SUBROUTINE err 246 247 END SUBROUTINE dynetat0 205 SUBROUTINE check_dim(n1, n2, str1, str2) 206 INTEGER, INTENT(IN) :: n1, n2 207 CHARACTER(LEN = *), INTENT(IN) :: str1, str2 208 CHARACTER(LEN = maxlen) :: s1, s2 209 IF(n1/=n2) CALL abort_gcm(TRIM(modname), 'value of "' // TRIM(str1) // '" = ' // TRIM(int2str(n1)) // & 210 ' read in starting file differs from gcm value of "' // TRIM(str2) // '" = ' // TRIM(int2str(n2)), 1) 211 END SUBROUTINE check_dim 212 213 214 SUBROUTINE get_var1(var, v) 215 CHARACTER(LEN = *), INTENT(IN) :: var 216 REAL, INTENT(OUT) :: v(:) 217 CALL err(nf90_inq_varid(fID, var, vID), "inq", var) 218 CALL err(nf90_get_var(fID, vID, v), "get", var) 219 END SUBROUTINE get_var1 220 221 222 SUBROUTINE get_var2(var, v) 223 CHARACTER(LEN = *), INTENT(IN) :: var 224 REAL, INTENT(OUT) :: v(:, :) 225 CALL err(nf90_inq_varid(fID, var, vID), "inq", var) 226 CALL err(nf90_get_var(fID, vID, v), "get", var) 227 END SUBROUTINE get_var2 228 229 230 SUBROUTINE get_var3(var, v) 231 CHARACTER(LEN = *), INTENT(IN) :: var 232 REAL, INTENT(OUT) :: v(:, :, :) 233 CALL err(nf90_inq_varid(fID, var, vID), "inq", var) 234 CALL err(nf90_get_var(fID, vID, v), "get", var) 235 END SUBROUTINE get_var3 236 237 238 SUBROUTINE err(ierr, typ, nam) 239 INTEGER, INTENT(IN) :: ierr !--- NetCDF ERROR CODE 240 CHARACTER(LEN = *), INTENT(IN) :: typ !--- TYPE OF OPERATION 241 CHARACTER(LEN = *), INTENT(IN) :: nam !--- FIELD/FILE NAME 242 IF(ierr==nf90_noerr) RETURN 243 SELECT CASE(typ) 244 CASE('inq'); mesg = "Field <" // TRIM(nam) // "> is missing" 245 CASE('get'); mesg = "Reading failed for <" // TRIM(nam) // ">" 246 CASE('open'); mesg = "File opening failed for <" // TRIM(nam) // ">" 247 CASE('close'); mesg = "File closing failed for <" // TRIM(nam) // ">" 248 END SELECT 249 CALL ABORT_gcm(TRIM(modname), TRIM(mesg), ierr) 250 END SUBROUTINE err 251 252 END SUBROUTINE dynetat0 253 END MODULE lmdz_dynetat0 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/qminimum.F90
r5159 r5182 3 3 SUBROUTINE qminimum(q, nqtot, deltap) 4 4 5 USE infotrac, ONLY: niso, ntiso, iqIsoPha, tracers5 USE lmdz_infotrac, ONLY: niso, ntiso, iqIsoPha, tracers 6 6 USE lmdz_strings, ONLY: strIdx 7 7 USE lmdz_readTracFiles, ONLY: addPhase -
LMDZ6/branches/Amaury_dev/libf/dyn3d/vlsplt.F90
r5159 r5182 4 4 5 5 SUBROUTINE vlsplt(q, pente_max, masse, w, pbaru, pbarv, pdt, iq) 6 USE infotrac, ONLY: nqtot, tracers6 USE lmdz_infotrac, ONLY: nqtot, tracers 7 7 USE lmdz_ssum_scopy, ONLY: scopy 8 8 … … 107 107 END SUBROUTINE vlsplt 108 108 RECURSIVE SUBROUTINE vlx(q, pente_max, masse, u_m, iq) 109 USE infotrac, ONLY: nqtot, tracers, & ! CRisi109 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi 110 110 min_qParent, min_qMass, min_ratio ! MVals et CRisi 111 111 USE lmdz_iniprint, ONLY: lunout, prt_level … … 423 423 END SUBROUTINE vlx 424 424 RECURSIVE SUBROUTINE vly(q, pente_max, masse, masse_adv_v, iq) 425 USE infotrac, ONLY: nqtot, tracers, & ! CRisi425 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi 426 426 min_qParent, min_qMass, min_ratio ! MVals et CRisi 427 427 USE lmdz_ssum_scopy, ONLY: ssum … … 749 749 END SUBROUTINE vly 750 750 RECURSIVE SUBROUTINE vlz(q, pente_max, masse, w, iq) 751 USE infotrac, ONLY: nqtot, tracers, & ! CRisi751 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi 752 752 min_qParent, min_qMass, min_ratio ! MVals et CRisi 753 753 -
LMDZ6/branches/Amaury_dev/libf/dyn3d/vlspltqs.F90
r5159 r5182 4 4 SUBROUTINE vlspltqs(q, pente_max, masse, w, pbaru, pbarv, pdt, & 5 5 p, pk, teta, iq) 6 USE infotrac, ONLY: nqtot, tracers6 USE lmdz_infotrac, ONLY: nqtot, tracers 7 7 8 8 ! Auteurs: P.Le Van, F.Hourdin, F.Forget, F.Codron … … 178 178 END SUBROUTINE vlspltqs 179 179 SUBROUTINE vlxqs(q, pente_max, masse, u_m, qsat, iq) 180 USE infotrac, ONLY: nqtot, tracers ! CRisi180 USE lmdz_infotrac, ONLY: nqtot, tracers ! CRisi 181 181 182 182 … … 511 511 END SUBROUTINE vlxqs 512 512 SUBROUTINE vlyqs(q, pente_max, masse, masse_adv_v, qsat, iq) 513 USE infotrac, ONLY: nqtot, tracers ! CRisi513 USE lmdz_infotrac, ONLY: nqtot, tracers ! CRisi 514 514 515 515 ! Auteurs: P.Le Van, F.Hourdin, F.Forget -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/initdynav.F90
r5159 r5182 4 4 5 5 USE IOIPSL 6 USE infotrac, ONLY: nqtot6 USE lmdz_infotrac, ONLY: nqtot 7 7 USE com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid, & 8 8 dynhistave_file, dynhistvave_file, dynhistuave_file -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/inithist.F90
r5159 r5182 4 4 5 5 USE IOIPSL 6 USE infotrac, ONLY: nqtot6 USE lmdz_infotrac, ONLY: nqtot 7 7 USE com_io_dyn_mod, ONLY: histid, histvid, histuid, & 8 8 dynhist_file, dynhistv_file, dynhistu_file -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/iso_verif_dyn.f90
r5117 r5182 64 64 function iso_verif_aberrant_nostop & 65 65 (x,iso,q,err_msg) 66 USE infotrac, ONLY: isoName, getKey66 USE lmdz_infotrac, ONLY: isoName, getKey 67 67 IMPLICIT NONE 68 68 -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/lmdz_infotrac.f90
r5181 r5182 1 !$Id$ 2 3 MODULE infotrac 1 MODULE lmdz_infotrac 4 2 5 3 USE lmdz_strings, ONLY: msg, fmsg, maxlen, cat, dispTable, int2str, bool2str, strStack, strParse … … 116 114 SUBROUTINE init_infotrac 117 115 USE control_mod, ONLY: planet_type 118 #ifdef REPROBUS 119 USE CHEM_REP, ONLY: Init_chem_rep_trac 120 #endif 121 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_STRATAER 116 USE lmdz_reprobus_wrappers, ONLY: init_chem_rep_trac 117 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_STRATAER, CPPKEY_REPROBUS 122 118 USE lmdz_iniprint, ONLY: lunout, prt_level 123 124 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 119 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm 120 125 121 IMPLICIT NONE 126 122 !============================================================================================================================== … … 204 200 END IF 205 201 CASE('repr') 206 #ifndef REPROBUS 207 CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1)208 #endif 202 IF (.NOT. CPPKEY_REPROBUS) 203 CALL abort_gcm(modname, 'You must add cpp key REPROBUS and compile with REPROBUS code', 1) 204 END IF 209 205 CASE('coag') 210 206 IF (.NOT. CPPKEY_STRATAER) THEN … … 233 229 !--------------------------------------------------------------------------------------------------------------------------- 234 230 nqo = SIZE(tracers) - nqCO2 235 CALL Init_chem_inca_trac(nqINCA) !--- Get nqINCA from INCA231 CALL init_chem_inca_trac(nqINCA) !--- Get nqINCA from INCA 236 232 nbtr = nqINCA + nqCO2 !--- Number of tracers passed to phytrac 237 233 nqtrue = nbtr + nqo !--- Total number of "true" tracers … … 277 273 !--------------------------------------------------------------------------------------------------------------------------- 278 274 279 #ifdef REPROBUS 280 !--- Transfert the number of tracers to Reprobus281 CALL Init_chem_rep_trac(nbtr, nqo, tracers(:)%name)282 283 #endif 275 IF (CPPKEY_REPROBUS) THEN 276 !--- Transfert the number of tracers to Reprobus 277 CALL init_chem_rep_trac(nbtr, nqo, tracers(:)%name) 278 END IF 279 284 280 !============================================================================================================================== 285 281 ! 2) Calculate nqtot, number of tracers needed (greater if advection schemes 20 or 30 have been chosen). … … 426 422 END SUBROUTINE init_infotrac 427 423 428 END MODULE infotrac424 END MODULE lmdz_infotrac -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/test_period.f90
r5159 r5182 8 8 ! teta, q , p et phis .......... 9 9 10 USE infotrac, ONLY: nqtot10 USE lmdz_infotrac, ONLY: nqtot 11 11 12 12 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/writedynav.F90
r5159 r5182 4 4 5 5 USE ioipsl 6 USE infotrac, ONLY: nqtot6 USE lmdz_infotrac, ONLY: nqtot 7 7 USE com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid 8 8 USE comconst_mod, ONLY: cpp -
LMDZ6/branches/Amaury_dev/libf/dyn3d_common/writehist.f90
r5159 r5182 4 4 5 5 USE ioipsl 6 USE infotrac, ONLY: nqtot6 USE lmdz_infotrac, ONLY: nqtot 7 7 USE com_io_dyn_mod, ONLY: histid, histvid, histuid 8 8 USE temps_mod, ONLY: itau_dyn -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/addfi_loc.f90
r5159 r5182 5 5 pdufi, pdvfi, pdhfi, pdqfi, pdpfi) 6 6 USE parallel_lmdz 7 USE infotrac, ONLY: nqtot7 USE lmdz_infotrac, ONLY: nqtot 8 8 USE control_mod, ONLY: planet_type 9 9 USE lmdz_ssum_scopy, ONLY: ssum -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/advtrac_loc.f90
r5159 r5182 7 7 ! M.A Filiberti (04/2002) 8 8 9 USE infotrac, ONLY: nqtot, tracers9 USE lmdz_infotrac, ONLY: nqtot, tracers 10 10 USE control_mod, ONLY: iapp_tracvl, day_step, planet_type 11 11 USE comconst_mod, ONLY: dtvr -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/caladvtrac_loc.f90
r5159 r5182 7 7 flxw, pk, iapptrac) 8 8 USE parallel_lmdz 9 USE infotrac, ONLY: nqtot9 USE lmdz_infotrac, ONLY: nqtot 10 10 USE control_mod, ONLY: iapp_tracvl, planet_type 11 11 USE caladvtrac_mod -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/caladvtrac_mod.F90
r5159 r5182 31 31 USE allocate_field_mod 32 32 USE parallel_lmdz 33 USE infotrac, ONLY: nqtot33 USE lmdz_infotrac, ONLY: nqtot 34 34 USE advtrac_mod, ONLY: advtrac_allocate 35 35 USE groupe_mod -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/check_isotopes_loc.F90
r5159 r5182 2 2 USE parallel_lmdz 3 3 USE lmdz_strings, ONLY: maxlen, msg, strIdx, strStack, int2str, real2str 4 USE infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, &4 USE lmdz_infotrac, ONLY: nqtot, niso, nphas, isotope, isoCheck, iqIsoPha, isoSelect, & 5 5 ntiso, iH2O, nzone, tracers, isoName, itZonIso, getKey 6 6 -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/conf_gcm.F90
r5159 r5182 10 10 USE lmdz_filtre_fft_loc, ONLY: use_filtre_fft_loc=>use_filtre_fft 11 11 USE mod_hallo, ONLY: use_mpi_alloc 12 USE infotrac, ONLY: type_trac12 USE lmdz_infotrac, ONLY: type_trac 13 13 USE lmdz_assert, ONLY: assert 14 14 USE comconst_mod, ONLY: dissip_deltaz, dissip_factz, dissip_zref, & -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynetat0_loc.F90
r5159 r5182 7 7 !------------------------------------------------------------------------------- 8 8 USE parallel_lmdz 9 USE infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName9 USE lmdz_infotrac, ONLY: nqtot, tracers, niso, iqIsoPha, iH2O, isoName 10 10 USE lmdz_strings, ONLY: maxlen, msg, strStack, real2str, int2str, strIdx 11 11 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_inquire_dimension, nf90_inq_varid, & -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/dynredem_loc.F90
r5159 r5182 8 8 USE mod_hallo 9 9 USE lmdz_strings, ONLY: maxlen 10 USE infotrac, ONLY: nqtot, tracers10 USE lmdz_infotrac, ONLY: nqtot, tracers 11 11 USE netcdf, ONLY: nf90_create, nf90_def_dim, nf90_inq_varid, nf90_global, & 12 12 nf90_close, nf90_put_att, nf90_unlimited, nf90_clobber, & … … 169 169 USE mod_hallo 170 170 USE lmdz_strings, ONLY: maxlen 171 USE infotrac, ONLY: nqtot, tracers, type_trac171 USE lmdz_infotrac, ONLY: nqtot, tracers, type_trac 172 172 USE control_mod 173 173 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_get_var, nf90_inq_varid, & -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/gcm.F90
r5159 r5182 8 8 USE mod_const_mpi, ONLY: init_const_mpi 9 9 USE parallel_lmdz 10 USE infotrac, ONLY: nqtot, init_infotrac10 USE lmdz_infotrac, ONLY: nqtot, init_infotrac 11 11 USE mod_hallo 12 12 USE Bands -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/groupe_mod.F90
r5159 r5182 10 10 USE allocate_field_mod 11 11 USE parallel_lmdz 12 ! USE infotrac12 ! USE lmdz_infotrac 13 13 USE advtrac_mod, ONLY: advtrac_allocate 14 14 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/iniacademic_loc.F90
r5159 r5182 4 4 5 5 USE lmdz_filtreg, ONLY: inifilr 6 USE infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName6 USE lmdz_infotrac, ONLY: nqtot, niso, iqIsoPha, tracers, getKey, isoName 7 7 USE control_mod, ONLY: day_step, planet_type 8 8 USE exner_hyb_m, ONLY: exner_hyb -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/initdynav_loc.f90
r5159 r5182 8 8 USE lmdz_write_field 9 9 USE misc_mod 10 ! USE infotrac10 ! USE lmdz_infotrac 11 11 USE com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid, & 12 12 dynhistave_file, dynhistvave_file, dynhistuave_file -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/leapfrog_loc.F90
r5160 r5182 13 13 USE lmdz_vampir 14 14 USE lmdz_timer_filtre, ONLY: print_filtre_timer 15 USE infotrac15 USE lmdz_infotrac 16 16 USE guide_loc_mod, ONLY: guide_main 17 17 USE getparam -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/leapfrog_mod.F90
r5159 r5182 41 41 USE lmdz_dimensions 42 42 USE lmdz_paramet 43 USE infotrac43 USE lmdz_infotrac 44 44 USE caldyn_mod,ONLY: caldyn_allocate 45 45 USE integrd_mod,ONLY: integrd_allocate -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/lmdz_call_calfis.F90
r5159 r5182 36 36 USE lmdz_dimensions 37 37 USE lmdz_paramet 38 USE infotrac, ONLY: nqtot38 USE lmdz_infotrac, ONLY: nqtot 39 39 IMPLICIT NONE 40 40 TYPE(distrib), POINTER :: d … … 80 80 USE Bands 81 81 USE lmdz_vampir 82 USE infotrac, ONLY: nqtot82 USE lmdz_infotrac, ONLY: nqtot 83 83 USE control_mod 84 84 USE write_field_loc -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/qminimum_loc.f90
r5159 r5182 3 3 SUBROUTINE qminimum_loc(q, nqtot, deltap) 4 4 USE parallel_lmdz 5 USE infotrac, ONLY: niso, ntiso, iqIsoPha, tracers, &5 USE lmdz_infotrac, ONLY: niso, ntiso, iqIsoPha, tracers, & 6 6 isoCheck, min_qParent 7 7 USE lmdz_strings, ONLY: strIdx -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlsplt_loc.f90
r5159 r5182 13 13 ! -------------------------------------------------------------------- 14 14 USE parallel_lmdz 15 USE infotrac, ONLY: nqtot, tracers, & ! CRisi &15 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi & 16 16 min_qParent, min_qMass, min_ratio ! MVals et CRisi 17 17 USE lmdz_iniprint, ONLY: lunout, prt_level … … 381 381 ! -------------------------------------------------------------------- 382 382 USE parallel_lmdz 383 USE infotrac, ONLY: nqtot, tracers, & ! CRisi &383 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi & 384 384 min_qParent, min_qMass, min_ratio ! MVals et CRisi 385 385 USE comconst_mod, ONLY: pi … … 814 814 USE parallel_lmdz 815 815 USE vlz_mod 816 USE infotrac, ONLY: nqtot, tracers, & ! CRisi &816 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi & 817 817 min_qParent, min_qMass, min_ratio ! MVals et CRisi 818 818 USE lmdz_iniprint, ONLY: lunout, prt_level -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltgen_loc.F90
r5160 r5182 27 27 USE lmdz_vampir 28 28 ! CRisi: on rajoute variables utiles d'infotrac 29 USE infotrac, ONLY: nqtot, tracers, isoCheck29 USE lmdz_infotrac, ONLY: nqtot, tracers, isoCheck 30 30 USE vlspltgen_mod 31 31 USE comconst_mod, ONLY: cpp -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltgen_mod.F90
r5159 r5182 14 14 USE allocate_field_mod 15 15 USE parallel_lmdz 16 USE infotrac16 USE lmdz_infotrac 17 17 USE vlz_mod,ONLY: vlz_allocate 18 18 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlspltqs_loc.f90
r5159 r5182 11 11 ! -------------------------------------------------------------------- 12 12 USE parallel_lmdz 13 USE infotrac, ONLY: nqtot, tracers, & ! CRisi &13 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi & 14 14 min_qParent, min_qMass, min_ratio ! MVals et CRisi7 15 15 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm … … 388 388 ! -------------------------------------------------------------------- 389 389 USE parallel_lmdz 390 USE infotrac, ONLY: nqtot, tracers, & ! CRisi &390 USE lmdz_infotrac, ONLY: nqtot, tracers, & ! CRisi & 391 391 min_qParent, min_qMass, min_ratio ! MVals et CRisi 392 392 USE comconst_mod, ONLY: pi -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/vlz_mod.F90
r5159 r5182 14 14 USE allocate_field_mod 15 15 USE parallel_lmdz 16 USE infotrac16 USE lmdz_infotrac 17 17 USE lmdz_dimensions 18 18 USE lmdz_paramet … … 33 33 USE bands 34 34 USE parallel_lmdz 35 USE infotrac35 USE lmdz_infotrac 36 36 IMPLICIT NONE 37 37 TYPE(distrib),INTENT(IN) :: dist -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedyn_xios.F90
r5159 r5182 7 7 USE parallel_lmdz 8 8 USE misc_mod 9 USE infotrac, ONLY: nqtot9 USE lmdz_infotrac, ONLY: nqtot 10 10 USE com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid 11 11 USE comconst_mod, ONLY: cpp -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writedynav_loc.f90
r5159 r5182 8 8 USE parallel_lmdz 9 9 USE misc_mod 10 USE infotrac, ONLY: nqtot10 USE lmdz_infotrac, ONLY: nqtot 11 11 USE com_io_dyn_mod, ONLY: histaveid, histvaveid, histuaveid 12 12 USE comconst_mod, ONLY: cpp -
LMDZ6/branches/Amaury_dev/libf/dyn3dmem/writehist_loc.f90
r5159 r5182 5 5 USE parallel_lmdz 6 6 USE misc_mod 7 USE infotrac, ONLY: nqtot7 USE lmdz_infotrac, ONLY: nqtot 8 8 USE com_io_dyn_mod, ONLY: histid, histvid, histuid 9 9 USE comconst_mod, ONLY: cpp -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/calfis.f90
r5159 r5182 28 28 ! Auteur : P. Le Van, F. Hourdin 29 29 ! ......... 30 USE infotrac, ONLY: nqtot, tracers30 USE lmdz_infotrac, ONLY: nqtot, tracers 31 31 USE control_mod, ONLY: planet_type, nsplit_phys 32 32 USE callphysiq_mod, ONLY: call_physiq -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/lmdz_calfis_loc.F90
r5160 r5182 43 43 Use Write_field_p 44 44 USE Times 45 USE infotrac, ONLY: nqtot, tracers45 USE lmdz_infotrac, ONLY: nqtot, tracers 46 46 USE control_mod, ONLY: planet_type, nsplit_phys 47 47 USE callphysiq_mod, ONLY: call_physiq -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/phydev/iniphysiq_mod.F90
r5118 r5182 13 13 USE inigeomphy_mod, ONLY: inigeomphy 14 14 USE lmdz_phys_para, ONLY: klon_omp ! number of columns (on local omp grid) 15 USE infotrac, ONLY: nqtot, type_trac15 USE lmdz_infotrac, ONLY: nqtot, type_trac 16 16 USE infotrac_phy, ONLY: init_infotrac_phy 17 17 USE inifis_mod, ONLY: inifis -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/phylmd/ce0l.F90
r5159 r5182 23 23 USE netcdf, ONLY: nf90_open, nf90_nowrite, nf90_close, nf90_noerr, & 24 24 nf90_inquire_dimension, nf90_inq_dimid, nf90_inq_varid, nf90_get_var 25 USE infotrac, ONLY: init_infotrac25 USE lmdz_infotrac, ONLY: init_infotrac 26 26 USE dimphy, ONLY: klon 27 27 USE test_disvert_m, ONLY: test_disvert -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/phylmd/etat0dyn_netcdf.F90
r5159 r5182 78 78 USE exner_hyb_m, ONLY: exner_hyb 79 79 USE exner_milieu_m, ONLY: exner_milieu 80 USE infotrac, ONLY: nqtot, tracers80 USE lmdz_infotrac, ONLY: nqtot, tracers 81 81 USE lmdz_filtreg 82 82 USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA -
LMDZ6/branches/Amaury_dev/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90
r5159 r5182 15 15 USE lmdz_phys_para, ONLY: klon_omp ! number of columns (on local omp grid) 16 16 USE lmdz_vertical_layers, ONLY: init_vertical_layers 17 USE infotrac, ONLY: nbtr, type_trac17 USE lmdz_infotrac, ONLY: nbtr, type_trac 18 18 19 19 #ifdef REPROBUS -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_cppkeys_wrapper.F90
r5151 r5182 8 8 ! CPP_PHYS -> CPPKEY_PHYS 9 9 ! INCA -> CPPKEY_INCA ! -> also in lmdz_inca_wrappers.F90 10 ! REPROBUS -> CPPKEY_REPROBUS ! -> also in lmdz_reprobus_wrappers.F90 10 11 ! CPP_StratAer -> CPPKEY_STRATAER 11 12 ! CPP_DUST -> CPPKEY_DUST … … 23 24 PUBLIC nf90_format, CPPKEY_PHYS, CPPKEY_INCA, CPPKEY_STRATAER, CPPKEY_DUST, & 24 25 CPPKEY_DEBUGIO, CPPKEY_INLANDSIS, CPPKEY_OUTPUTPHYSSCM, CPPKEY_COSP, CPPKEY_COSP2, & 25 CPPKEY_COSPV2 26 CPPKEY_COSPV2, CPPKEY_REPROBUS 26 27 27 28 #ifdef NC_DOUBLE … … 41 42 #else 42 43 LOGICAL, PARAMETER :: CPPKEY_INCA = .FALSE. 44 #endif 45 46 #ifdef REPROBUS 47 LOGICAL, PARAMETER :: CPPKEY_REPROBUS = .TRUE. 48 #else 49 LOGICAL, PARAMETER :: CPPKEY_REPROBUS = .FALSE. 43 50 #endif 44 51 -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_inca_wrappers.F90
r5117 r5182 7 7 END SUBROUTINE lmdz_inca_wrapper_abort 8 8 9 SUBROUTINE Init_chem_inca_trac(NBTR)9 SUBROUTINE init_chem_inca_trac(nbtr) 10 10 IMPLICIT NONE 11 11 INTEGER, INTENT(OUT) :: nbtr 12 12 13 13 CALL lmdz_inca_wrapper_abort 14 END SUBROUTINE Init_chem_inca_trac14 END SUBROUTINE init_chem_inca_trac 15 15 16 16 SUBROUTINE init_transport(& -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_mpi.F90
r4600 r5182 1 MODULE lmdz_mpi 1 2 #ifdef CPP_MPI 2 MODULE lmdz_mpi3 4 3 INCLUDE 'mpif.h' 5 4 LOGICAL,PARAMETER :: using_mpi = .TRUE. 5 #else 6 LOGICAL, PARAMETER :: using_mpi = .FALSE. 7 8 INTEGER, PARAMETER :: MPI_REAL8 = 1 9 INTEGER, PARAMETER :: MPI_INTEGER = 1 10 INTEGER, PARAMETER :: MPI_CHARACTER = 1 11 INTEGER, PARAMETER :: MPI_LOGICAL = 1 12 INTEGER, PARAMETER :: MPI_SUM = 1 13 INTEGER, PARAMETER :: MPI_MIN = 1 14 INTEGER, PARAMETER :: MPI_COMM_WORLD = 1 15 INTEGER, PARAMETER :: MPI_STATUS_SIZE = 1 16 INTEGER, PARAMETER :: MPI_THREAD_SERIALIZED = 1 17 INTEGER(kind = 8), PARAMETER :: MPI_ADDRESS_KIND = 1 18 INTEGER, PARAMETER :: MPI_INFO_NULL = 1 19 #endif 6 20 END MODULE lmdz_mpi 7 8 #else9 10 MODULE lmdz_mpi11 LOGICAL,PARAMETER :: using_mpi = .FALSE.12 13 INTEGER, PARAMETER :: MPI_REAL8 = 114 INTEGER, PARAMETER :: MPI_INTEGER = 115 INTEGER, PARAMETER :: MPI_CHARACTER = 116 INTEGER, PARAMETER :: MPI_LOGICAL = 117 INTEGER, PARAMETER :: MPI_SUM = 118 INTEGER, PARAMETER :: MPI_MIN = 119 INTEGER, PARAMETER :: MPI_COMM_WORLD = 120 INTEGER, PARAMETER :: MPI_STATUS_SIZE = 121 INTEGER, PARAMETER :: MPI_THREAD_SERIALIZED =122 INTEGER(kind=8), PARAMETER :: MPI_ADDRESS_KIND = 123 INTEGER, PARAMETER :: MPI_INFO_NULL = 124 25 END MODULE lmdz_mpi26 27 #endif -
LMDZ6/branches/Amaury_dev/libf/misc/lmdz_reprobus_wrappers.F90
r5173 r5182 1 ! incaSUBROUTINE wrappers1 ! reprobus SUBROUTINE wrappers 2 2 3 #ifndef INCA 3 MODULE lmdz_reprobus_wrappers 4 4 5 SUBROUTINE lmdz_inca_wrapper_abort 6 STOP 'INCA key undefined, must not enter in INCA wrappers ==> aborting'7 END SUBROUTINE lmdz_inca_wrapper_abort 5 #ifdef REPROBUS 6 USE CHEM_REP, ONLY: init_chem_rep_trac 7 #else 8 8 9 SUBROUTINE Init_chem_inca_trac(NBTR) 10 IMPLICIT NONE 11 INTEGER, INTENT(OUT) :: nbtr 9 CONTAINS 12 10 13 CALL lmdz_inca_wrapper_abort 14 END SUBROUTINE Init_chem_inca_trac 15 16 SUBROUTINE init_transport(& 17 tracnam_lmdz, & 18 conv_flg_lmdz, & 19 pbl_flg_lmdz, & 20 hadv_flg_lmdz, & 21 vadv_flg_lmdz) 22 IMPLICIT NONE 23 INTEGER, DIMENSION(:), INTENT(OUT) :: hadv_flg_lmdz 24 INTEGER, DIMENSION(:), INTENT(OUT) :: vadv_flg_lmdz 25 26 INTEGER, DIMENSION(:), INTENT(OUT) :: conv_flg_lmdz 27 INTEGER, DIMENSION(:), INTENT(OUT) :: pbl_flg_lmdz 28 CHARACTER(len = 8), DIMENSION(:), INTENT(OUT) :: tracnam_lmdz 29 30 CALL lmdz_inca_wrapper_abort 31 END SUBROUTINE init_transport 32 33 SUBROUTINE finalize_inca 34 IMPLICIT NONE 35 CALL lmdz_inca_wrapper_abort 36 END SUBROUTINE finalize_inca 37 38 SUBROUTINE CHEMHOOK_BEGIN(& 39 calday, & 40 ijour, & 41 gmtime, & 42 oro, & 43 lat, & 44 lon, & 45 area, & 46 pfull, & 47 pmid, & 48 coefh, & 49 zma, & 50 temp, & 51 u, & 52 v, & 53 rot, & 54 ozrad, & 55 sh, & 56 ts, & 57 t_air_2m, & 58 dpth_snow, & 59 sws, & 60 albs, & 61 rain_fall, & 62 snow_fall, & 63 ctop, & 64 cbot, & 65 cldfr, & 66 nx, & 67 ny, & 68 mmr, & 69 ftsol, & 70 paprs, & 71 cdragh, & 72 cdragm, & 73 pctsrf, & 74 delt, & 75 nstep) 76 IMPLICIT NONE 77 REAL, INTENT(IN) :: calday 78 INTEGER, INTENT(IN) :: ijour ! jour julien 79 REAL, INTENT(IN) :: gmtime ! input-R-temps universel dans la journee (0 a 86400 s) 80 INTEGER, INTENT(IN) :: ctop(:) 81 INTEGER, INTENT(IN) :: cbot(:) 82 INTEGER, INTENT(IN) :: nx, ny 83 REAL, INTENT(IN) :: pmid(:, :) 84 REAL, INTENT(IN) :: pfull(:, :) 85 REAL, INTENT(IN) :: coefh(:, :) 86 REAL, INTENT(IN) :: zma(:, :) 87 REAL, INTENT(IN) :: temp(:, :) 88 REAL, INTENT(IN) :: u(:, :) 89 REAL, INTENT(IN) :: v(:, :) 90 REAL, INTENT(IN) :: rot(:, :) 91 REAL, INTENT(IN) :: ozrad(:, :) 92 REAL, INTENT(IN) :: sh(:, :) 93 REAL, INTENT(IN) :: lat(:) 94 REAL, INTENT(IN) :: lon(:) 95 REAL, INTENT(IN) :: oro(:) 96 REAL, INTENT(IN) :: area(:) 97 REAL, INTENT(IN) :: ts(:) 98 REAL, INTENT(IN) :: t_air_2m(:) ! air temperature near surface 99 REAL, INTENT(IN) :: dpth_snow(:) 100 REAL, INTENT(IN) :: sws(:) 101 REAL, INTENT(IN) :: albs(:) 102 REAL, INTENT(IN) :: rain_fall(:) 103 REAL, INTENT(IN) :: snow_fall(:) 104 REAL, INTENT(IN) :: mmr(:, :, :) 105 REAL, INTENT(IN) :: cldfr (:, :) 106 ! variables used in nightingale 107 REAL, INTENT(IN) :: ftsol(:, :) 108 REAL, INTENT(IN) :: paprs(:, :) 109 REAL, INTENT(IN) :: cdragh(:), cdragm(:) 110 REAL, INTENT(IN) :: pctsrf(:, :) 111 REAL, INTENT(IN) :: delt ! timestep in seconds of physics 112 INTEGER, INTENT(IN) :: nstep ! model time step 113 114 CALL lmdz_inca_wrapper_abort 115 END SUBROUTINE CHEMHOOK_BEGIN 116 117 SUBROUTINE CHEMHOOK_END(& 118 dt, & 119 pmid, & 120 temp, & 121 mmr, & 122 nbtr, & 123 paprs, & 124 sh, & 125 area, & 126 zma, & 127 phis, & 128 rh, aps, bps, ap, bp, lafin) 129 IMPLICIT NONE 130 INTEGER, INTENT(IN) :: nbtr 131 REAL, INTENT(IN) :: dt 132 REAL, INTENT(IN) :: pmid(:, :) 133 REAL, INTENT(IN) :: area(:) 134 REAL, INTENT(IN) :: temp(:, :) 135 REAL, INTENT(IN) :: paprs(:, :) 136 REAL, INTENT(IN) :: sh(:, :) 137 REAL, INTENT(INOUT) :: mmr(:, :, :) 138 REAL, INTENT(IN) :: zma(:, :) 139 REAL, INTENT(IN) :: phis(:) 140 REAL, INTENT(IN) :: rh(:, :) 141 REAL, INTENT(IN), DIMENSION(:) :: aps, bps 142 REAL, INTENT(IN), DIMENSION(:) :: ap, bp 143 LOGICAL, INTENT(IN) :: lafin 144 145 CALL lmdz_inca_wrapper_abort 146 END SUBROUTINE chemhook_end 147 148 SUBROUTINE chemtime(istp, date0, dt, itap) 149 IMPLICIT NONE 150 INTEGER, INTENT(IN) :: istp ! time step of the restart file 151 REAL, INTENT(IN) :: date0 ! the date at which itau = 0 152 REAL, INTENT(IN) :: dt ! time step 153 INTEGER, INTENT(IN) :: itap 154 CALL lmdz_inca_wrapper_abort 155 END SUBROUTINE chemtime 156 157 SUBROUTINE INIT_CONST_LMDZ(& 158 nday_l, & 159 nbsrf_l, & 160 is_oce_l, & 161 is_sic_l, & 162 is_ter_l, & 163 is_lic_l, & 164 calend_l, & 165 config_inca_l) 166 IMPLICIT NONE 167 INTEGER, INTENT(IN) :: nday_l 168 INTEGER, INTENT(IN) :: nbsrf_l 169 INTEGER, INTENT(IN) :: is_oce_l, is_sic_l, is_lic_l, is_ter_l 170 CHARACTER (len = 10), INTENT(IN) :: calend_l 171 CHARACTER(len = 4), INTENT(IN) :: config_inca_l 172 173 CALL lmdz_inca_wrapper_abort 174 END SUBROUTINE init_const_lmdz 175 176 SUBROUTINE init_inca_geometry(& 177 longitude_lmdz, latitude_lmdz, & 178 boundslon_lmdz, boundslat_lmdz, & 179 cell_area_lmdz, & 180 ind_cell_glo_lmdz) 181 IMPLICIT NONE 182 REAL, INTENT(IN) :: longitude_lmdz(:) 183 REAL, INTENT(IN) :: latitude_lmdz(:) 184 REAL, INTENT(IN) :: boundslon_lmdz(:, :) 185 REAL, INTENT(IN) :: boundslat_lmdz(:, :) 186 REAL, INTENT(IN) :: cell_area_lmdz(:) 187 INTEGER, OPTIONAL, INTENT(IN) :: ind_cell_glo_lmdz(:) 188 189 CALL lmdz_inca_wrapper_abort 190 END SUBROUTINE init_inca_geometry 191 192 SUBROUTINE CHEMINI(pmid, & 193 nbp_lon_lmdz, nbp_lat_lmdz, & 194 latgcm, & 195 longcm, & 196 presnivs, & 197 calday, & 198 klon, & 199 nqmax, & 200 nqo, & 201 pdtphys, & 202 annee_ref, & 203 year_cur, & 204 day_ref, & 205 day_ini, & 206 start_time, & 207 itau_phy, & 208 date0, & 209 chemistry_couple, & 210 init_source, & 211 init_tauinca, & 212 init_pizinca, & 213 init_cginca, & 214 init_ccm, & 215 io_lon, & 216 io_lat) 217 IMPLICIT NONE 218 REAL, INTENT(IN) :: pmid(:, :) 219 INTEGER, INTENT(IN) :: nbp_lon_lmdz, nbp_lat_lmdz 220 REAL, INTENT(IN) :: calday 221 REAL, INTENT(IN) :: latgcm(:) 222 REAL, INTENT(IN) :: longcm(:) 223 REAL, INTENT(IN) :: presnivs(:) 224 INTEGER, INTENT(IN) :: klon 225 INTEGER, INTENT(IN) :: nqmax ! nombre total de traceurs = inca + lmdz 226 INTEGER, INTENT(IN) :: nqo ! nombre de traceurs lus dans traceur.def 227 REAL, INTENT(IN) :: pdtphys 228 INTEGER, INTENT(IN) :: annee_ref, year_cur 229 INTEGER, INTENT(IN) :: day_ref, day_ini 230 REAL, INTENT(IN) :: start_time 231 INTEGER, INTENT(IN) :: itau_phy 232 REAL, OPTIONAL, INTENT(IN) :: io_lat(nbp_lat_lmdz) ! latitudes (of global grid) 233 REAL, OPTIONAL, INTENT(IN) :: io_lon(nbp_lon_lmdz) ! longitudes (of global grid) 234 REAL, INTENT(IN) :: date0 235 LOGICAL, INTENT(IN) :: chemistry_couple 236 REAL, DIMENSION(:, :), INTENT(OUT) :: init_source 237 REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_tauinca 238 REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_pizinca 239 REAL, DIMENSION(:, :, :, :), INTENT(OUT) :: init_cginca 240 REAL, DIMENSION(:, :, :), INTENT(OUT) :: init_ccm 241 242 CALL lmdz_inca_wrapper_abort 243 END SUBROUTINE chemini 244 245 SUBROUTINE radlwsw_inca(chemistry_couple, kdlon, kflev, dist, rmu0, fract, & 246 solaire, paprs, pplay, tsol, albedo, alblw, t, q, size_wo, wo, & 247 cldfra, cldemi, cldtaupd, & 248 heat, heat0, cool, cool0, albpla, & 249 topsw, toplw, solsw, sollw, & 250 sollwdown, & 251 topsw0, toplw0, solsw0, sollw0, & 252 lwdn0, lwdn, lwup0, lwup, & 253 swdn0, swdn, swup0, swup, & 254 ok_ade, ok_aie, & 255 tau_inca, piz_inca, cg_inca, & 256 topswad_inca, solswad_inca, & 257 topswad0_inca, solswad0_inca, & 258 topsw_inca, topsw0_inca, & 259 solsw_inca, solsw0_inca, & 260 cldtaupi, topswai_inca, solswai_inca) 261 IMPLICIT NONE 262 LOGICAL, INTENT(IN) :: chemistry_couple 263 INTEGER, INTENT(IN) :: kdlon, kflev 264 REAL, INTENT(IN) :: solaire 265 REAL, INTENT(IN) :: dist 266 REAL, INTENT(IN) :: rmu0(:), fract(:) 267 REAL, INTENT(IN) :: paprs(:, :), pplay(:, :) 268 REAL, INTENT(IN) :: albedo(:), alblw(:), tsol(:) 269 REAL, INTENT(IN) :: t(:, :), q(:, :) 270 INTEGER, INTENT(IN) :: size_wo 271 REAL, INTENT(IN) :: wo(:, :, :) ! column-density of ozone in a layer, in kilo-Dobsons 272 LOGICAL, INTENT(IN) :: ok_ade, ok_aie ! switches whether to use aerosol direct (indirect) effects or not 273 REAL, INTENT(IN) :: cldfra(:, :), cldemi(:, :), cldtaupd(:, :) 274 REAL, INTENT(IN) :: tau_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) 275 REAL, INTENT(IN) :: piz_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) 276 REAL, INTENT(IN) :: cg_inca(:, :, :, :) ! aerosol optical properties (see aeropt.F) 277 REAL, INTENT(IN) :: cldtaupi(:, :) ! cloud optical thickness for pre-industrial aerosol concentrations 278 REAL, INTENT(OUT) :: heat(:, :), cool(:, :) 279 REAL, INTENT(OUT) :: heat0(:, :), cool0(:, :) 280 REAL, INTENT(OUT) :: topsw(:), toplw(:) 281 REAL, INTENT(OUT) :: solsw(:), sollw(:), albpla(:) 282 REAL, INTENT(OUT) :: topsw0(:), toplw0(:), solsw0(:), sollw0(:) 283 REAL, INTENT(OUT) :: sollwdown(:) 284 REAL, INTENT(OUT) :: swdn(:, :), swdn0(:, :) 285 REAL, INTENT(OUT) :: swup(:, :), swup0(:, :) 286 REAL, INTENT(OUT) :: lwdn(:, :), lwdn0(:, :) 287 REAL, INTENT(OUT) :: lwup(:, :), lwup0(:, :) 288 REAL, INTENT(OUT) :: topswad_inca(:), solswad_inca(:) ! output: aerosol direct forcing at TOA and surface 289 REAL, INTENT(OUT) :: topswad0_inca(:), solswad0_inca(:) ! output: aerosol direct forcing at TOA and surface 290 REAL, INTENT(OUT) :: topswai_inca(:), solswai_inca(:) ! output: aerosol indirect forcing atTOA and surface 291 REAL(kind = 8), INTENT(OUT) :: topsw_inca(:, :), topsw0_inca(:, :) 292 REAL(kind = 8), INTENT(OUT) :: solsw_inca(:, :), solsw0_inca(:, :) 293 294 CALL lmdz_inca_wrapper_abort 295 END SUBROUTINE radlwsw_inca 296 297 SUBROUTINE INIT_INCA_DIM_REG(& 298 iim, & 299 jjm, & 300 rlonu_l, & 301 rlatu_l, & 302 rlonv_l, & 303 rlatv_l) 304 305 IMPLICIT NONE 306 INTEGER, INTENT(IN) :: iim 307 INTEGER, INTENT(IN) :: jjm 308 REAL, INTENT(IN) :: rlonu_l(:) 309 REAL, INTENT(IN) :: rlatu_l(:) 310 REAL, INTENT(IN) :: rlonv_l(:) 311 REAL, INTENT(IN) :: rlatv_l(:) 312 313 CALL lmdz_inca_wrapper_abort 314 END SUBROUTINE INIT_INCA_DIM_REG 315 316 SUBROUTINE AEROSOL_METEO_CALC(& 317 calday, delt, pmid, pfull, t_seri, & 318 flxrcv, flxscv, flxrst, flxsst, pctsrf, & 319 area, rlat, rlon, u10m, v10m) 320 IMPLICIT NONE 321 REAL, INTENT(IN) :: calday 322 REAL, INTENT(IN) :: delt ! [s] 323 REAL, INTENT(IN) :: pmid(:, :) ! [Pa] 324 REAL, INTENT(IN) :: pfull(:, :) ! [Pa] 325 REAL, INTENT(IN) :: t_seri(:, :) ! [K] 326 REAL, INTENT(IN) :: flxrst(:, :) ! liquid water flux (stratiform) kgH2O/m2/s 327 REAL, INTENT(IN) :: flxrcv(:, :) ! liquid water flux (convection ) kgH2O/m2/s 328 REAL, INTENT(IN) :: flxsst(:, :) ! solid water flux (stratiform) kgH2O/m2/s 329 REAL, INTENT(IN) :: flxscv(:, :) ! solid water flux (convection) kgH2O/m2/s 330 REAL, INTENT(IN) :: pctsrf(:, :) ! subsurface fraction (0..1) 331 REAL, INTENT(IN) :: area(:) ! surface area of grid box [m2] 332 REAL, INTENT(IN) :: rlon(:) ! longitude 333 REAL, INTENT(IN) :: rlat(:) ! latitude 334 REAL, INTENT(IN) :: u10m(:, :) ! vents a 10m 335 REAL, INTENT(IN) :: v10m(:, :) ! vents a 10m 336 337 CALL lmdz_inca_wrapper_abort 338 END SUBROUTINE AEROSOL_METEO_CALC 11 SUBROUTINE lmdz_reprobus_wrapper_abort 12 STOP 'REPROBUS key undefined, must not enter in REPROBUS wrappers ==> aborting' 13 END SUBROUTINE lmdz_reprobus_wrapper_abort 339 14 340 15 #endif 16 END MODULE lmdz_reprobus_wrappers -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/aeropt_spl.f90
r5160 r5182 9 9 10 10 USE dimphy 11 USE infotrac11 USE lmdz_infotrac 12 12 USE lmdz_yomcst 13 13 USE lmdz_dimensions, ONLY: iim, jjm, llm, ndm -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/blcloud_scav.f90
r5160 r5182 7 7 USE dimphy 8 8 USE indice_sol_mod 9 USE infotrac9 USE lmdz_infotrac 10 10 USE lmdz_yomcst 11 11 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/blcloud_scav_lsc.f90
r5160 r5182 7 7 USE dimphy 8 8 USE indice_sol_mod 9 USE infotrac9 USE lmdz_infotrac 10 10 USE lmdz_yomcst 11 11 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/cm3_to_kg.f90
r5159 r5182 2 2 3 3 USE dimphy 4 USE infotrac4 USE lmdz_infotrac 5 5 USE indice_sol_mod 6 6 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/coarsemission.f90
r5160 r5182 27 27 USE dimphy 28 28 USE indice_sol_mod 29 USE infotrac29 USE lmdz_infotrac 30 30 USE dustemission_mod, ONLY: dustemission 31 31 ! USE lmdz_phytracr_spl, ONLY: nbreg_dust, nbreg_ind, nbreg_bb -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/deposition.f90
r5160 r5182 7 7 8 8 USE dimphy 9 USE infotrac9 USE lmdz_infotrac 10 10 USE indice_sol_mod 11 11 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/dustemission_mod.F90
r5160 r5182 171 171 emdustacc,emdustcoa,emdustsco,maskdust) !Output 172 172 USE dimphy 173 USE infotrac173 USE lmdz_infotrac 174 174 USE lmdz_writefield_phy 175 175 USE lmdz_grid_phy … … 248 248 SUBROUTINE makemask(maskdustloc) 249 249 USE dimphy 250 USE infotrac250 USE lmdz_infotrac 251 251 IMPLICIT NONE 252 252 !Input … … 278 278 279 279 USE dimphy 280 USE infotrac280 USE lmdz_infotrac 281 281 USE lmdz_writefield_phy 282 282 USE lmdz_grid_phy … … 518 518 SUBROUTINE initdust(xlat,xlon,pctsrf) 519 519 USE dimphy 520 USE infotrac520 USE lmdz_infotrac 521 521 USE lmdz_writefield_phy 522 522 USE lmdz_grid_phy … … 1106 1106 ! emisions over 12 dust bin 1107 1107 USE dimphy 1108 USE infotrac1108 USE lmdz_infotrac 1109 1109 1110 1110 IMPLICIT NONE -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/finemission.f90
r5160 r5182 13 13 USE dimphy 14 14 USE indice_sol_mod 15 USE infotrac15 USE lmdz_infotrac 16 16 ! USE lmdz_phytracr_spl, ONLY: nbreg_dust, nbreg_ind, nbreg_bb 17 17 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/gastoparticle.f90
r5160 r5182 2 2 id_prec, id_fine, tr_seri, his_g2pgas, his_g2paer) 3 3 USE dimphy 4 USE infotrac4 USE lmdz_infotrac 5 5 USE lmdz_YOECUMF 6 6 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/incloud_scav.f90
r5160 r5182 6 6 7 7 USE dimphy 8 USE infotrac8 USE lmdz_infotrac 9 9 USE indice_sol_mod 10 10 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/incloud_scav_lsc.f90
r5160 r5182 6 6 7 7 USE dimphy 8 USE infotrac8 USE lmdz_infotrac 9 9 USE indice_sol_mod 10 10 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/kg_to_cm3.f90
r5159 r5182 2 2 3 3 USE dimphy 4 USE infotrac4 USE lmdz_infotrac 5 5 USE lmdz_yomcst 6 6 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lmdz_phytracr_spl.F90
r5160 r5182 783 783 USE IOIPSL 784 784 USE dimphy 785 USE infotrac785 USE lmdz_infotrac 786 786 USE indice_sol_mod 787 787 USE lmdz_writefield_phy -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lmdz_precuremission.f90
r5160 r5182 24 24 USE dimphy 25 25 USE indice_sol_mod 26 USE infotrac26 USE lmdz_infotrac 27 27 USE lmdz_yomcst 28 28 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_orig.F90
r5160 r5182 9 9 USE lmdz_phys_para 10 10 USE traclmdz_mod 11 USE infotrac, ONLY: nbtr11 USE lmdz_infotrac, ONLY: nbtr 12 12 USE iophy 13 13 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/lsc_scav_spl.F90
r5160 r5182 11 11 USE lmdz_phys_para 12 12 USE traclmdz_mod 13 USE infotrac, ONLY: nbtr13 USE lmdz_infotrac, ONLY: nbtr 14 14 USE iophy 15 15 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxqfi2.f90
r5159 r5182 2 2 3 3 USE dimphy 4 USE infotrac4 USE lmdz_infotrac 5 5 USE lmdz_libmath, ONLY: ismax, ismin 6 6 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/minmaxsource.f90
r5159 r5182 2 2 3 3 USE dimphy 4 USE infotrac4 USE lmdz_infotrac 5 5 USE lmdz_libmath, ONLY: ismax, ismin 6 6 -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/phys_output_write_spl_mod.F90
r5160 r5182 382 382 USE pbl_surface_mod, ONLY: snow 383 383 USE indice_sol_mod, ONLY: nbsrf 384 USE infotrac, ONLY: nqtot, nbtr, tracers384 USE lmdz_infotrac, ONLY: nqtot, nbtr, tracers 385 385 USE lmdz_geometry, ONLY: cell_area 386 386 USE surface_data, ONLY: type_ocean, version_ocean, ok_veget, landice_opt -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/sediment_mod.f90
r5160 r5182 9 9 10 10 USE dimphy 11 USE infotrac11 USE lmdz_infotrac 12 12 USE lmdz_YOECUMF 13 13 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/Dust/trconvect.f90
r5160 r5182 5 5 6 6 USE dimphy 7 USE infotrac7 USE lmdz_infotrac 8 8 USE indice_sol_mod 9 9 USE lmdz_yomcst -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_1dutils.f90
r5160 r5182 702 702 USE iostart 703 703 USE lmdz_writefield_phy 704 USE infotrac704 USE lmdz_infotrac 705 705 USE control_mod 706 706 USE comconst_mod, ONLY: im, jm, lllm … … 836 836 USE phys_state_var_mod 837 837 USE iostart 838 USE infotrac838 USE lmdz_infotrac 839 839 USE control_mod 840 840 USE comconst_mod, ONLY: cpp, daysec, dtvr, g, kappa, omeg, rad -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_old_lmdz1d.F90
r5160 r5182 33 33 USE fonte_neige_mod, ONLY: fonte_neige_init, fonte_neige_final 34 34 35 USE infotrac35 USE lmdz_infotrac 36 36 USE control_mod 37 37 USE indice_sol_mod -
LMDZ6/branches/Amaury_dev/libf/phylmd/dyn1d/lmdz_scm.F90
r5160 r5182 27 27 USE fonte_neige_mod, ONLY: fonte_neige_init, fonte_neige_final 28 28 29 USE infotrac29 USE lmdz_infotrac 30 30 USE control_mod 31 31 USE indice_sol_mod
Note: See TracChangeset
for help on using the changeset viewer.