Changeset 4143 for LMDZ6/trunk/libf/dyn3d/qminimum.F
- Timestamp:
- May 9, 2022, 12:35:40 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/qminimum.F
r4124 r4143 4 4 SUBROUTINE qminimum( q,nqtot,deltap ) 5 5 6 USE infotrac, ONLY: niso, ntraciso,iqiso,ok_iso_verif 6 USE infotrac, ONLY: niso, ntiso,iqIsoPha, tracers 7 USE strings_mod, ONLY: strIdx 8 USE readTracFiles_mod, ONLY: addPhase 7 9 IMPLICIT none 8 10 c … … 16 18 REAL q(ip1jmp1,llm,nqtot), deltap(ip1jmp1,llm) 17 19 c 18 INTEGER iq_vap, iq_liq 19 PARAMETER ( iq_vap = 1 ) ! indice pour l'eau vapeur 20 PARAMETER ( iq_liq = 2 ) ! indice pour l'eau liquide 21 REAL seuil_vap, seuil_liq 22 PARAMETER ( seuil_vap = 1.0e-10 ) ! seuil pour l'eau vapeur 23 PARAMETER ( seuil_liq = 1.0e-11 ) ! seuil pour l'eau liquide 20 LOGICAL, SAVE :: first=.TRUE. 21 INTEGER, SAVE :: iq_vap, iq_liq ! indices pour l'eau vapeur/liquide 22 REAL, PARAMETER :: seuil_vap = 1.0e-10 ! seuil pour l'eau vapeur 23 REAL, PARAMETER :: seuil_liq = 1.0e-11 ! seuil pour l'eau liquide 24 24 c 25 25 c NB. ....( Il est souhaitable mais non obligatoire que les valeurs des … … 43 43 !INTEGER nb_pump 44 44 INTEGER ixt 45 46 IF(first) THEN 47 iq_vap = strIdx(tracers(:)%name, addPhase('H2O', 'g')) 48 iq_liq = strIdx(tracers(:)%name, addPhase('H2O', 'l')) 49 first = .FALSE. 50 END IF 45 51 c 46 52 c Quand l'eau liquide est trop petite (ou negative), on prend … … 49 55 c 50 56 51 if (ok_iso_verif) then 52 call check_isotopes_seq(q,ip1jmp1,'qminimum 52') 53 endif !if (ok_iso_verif) then 57 call check_isotopes_seq(q,ip1jmp1,'qminimum 52') 54 58 55 59 zx_defau_diag(:,:,:)=0.0 … … 127 131 if (zx_defau_diag(i,k,iq_vap).gt.0.0) then 128 132 ! on ajoute la vapeur en k 129 do ixt=1,nt raciso130 q(i,k,iq iso(ixt,iq_vap))=q(i,k,iqiso(ixt,iq_vap))131 : 132 : *q(i,k-1,iqiso(ixt,iq_vap))/q_follow(i,k-1,iq_vap)133 do ixt=1,ntiso 134 q(i,k,iqIsoPha(ixt,iq_vap))=q(i,k,iqIsoPha(ixt,iq_vap)) 135 : +zx_defau_diag(i,k,iq_vap) 136 : *q(i,k-1,iqIsoPha(ixt,iq_vap))/q_follow(i,k-1,iq_vap) 133 137 134 138 ! et on la retranche en k-1 135 q(i,k-1,iqiso(ixt,iq_vap))=q(i,k-1,iqiso(ixt,iq_vap)) 139 q(i,k-1,iqIsoPha(ixt,iq_vap))= 140 : q(i,k-1,iqIsoPha(ixt,iq_vap)) 136 141 : -zx_defau_diag(i,k,iq_vap) 137 142 : *deltap(i,k)/deltap(i,k-1) 138 : *q(i,k-1,iqiso(ixt,iq_vap))/q_follow(i,k-1,iq_vap) 143 : *q(i,k-1,iqIsoPha(ixt,iq_vap)) 144 : /q_follow(i,k-1,iq_vap) 139 145 140 146 enddo !do ixt=1,niso … … 148 154 enddo !do k=2,llm 149 155 150 if (ok_iso_verif) then 151 call check_isotopes_seq(q,ip1jmp1,'qminimum 168') 152 endif !if (ok_iso_verif) then 156 call check_isotopes_seq(q,ip1jmp1,'qminimum 168') 153 157 154 158 … … 160 164 161 165 ! on ajoute eau liquide en k en k 162 do ixt=1,nt raciso163 q(i,k,iq iso(ixt,iq_liq))=q(i,k,iqiso(ixt,iq_liq))166 do ixt=1,ntiso 167 q(i,k,iqIsoPha(ixt,iq_liq))=q(i,k,iqIsoPha(ixt,iq_liq)) 164 168 : +zx_defau_diag(i,k,iq_liq) 165 : *q(i,k,iq iso(ixt,iq_vap))/q_follow(i,k,iq_vap)169 : *q(i,k,iqIsoPha(ixt,iq_vap))/q_follow(i,k,iq_vap) 166 170 ! et on la retranche à la vapeur en k 167 q(i,k,iq iso(ixt,iq_vap))=q(i,k,iqiso(ixt,iq_vap))171 q(i,k,iqIsoPha(ixt,iq_vap))=q(i,k,iqIsoPha(ixt,iq_vap)) 168 172 : -zx_defau_diag(i,k,iq_liq) 169 : *q(i,k,iq iso(ixt,iq_vap))/q_follow(i,k,iq_vap)173 : *q(i,k,iqIsoPha(ixt,iq_vap))/q_follow(i,k,iq_vap) 170 174 enddo !do ixt=1,niso 171 175 q_follow(i,k,iq_liq)= q_follow(i,k,iq_liq) … … 177 181 enddo !do k=2,llm 178 182 179 if (ok_iso_verif) then 180 call check_isotopes_seq(q,ip1jmp1,'qminimum 197') 181 endif !if (ok_iso_verif) then 183 call check_isotopes_seq(q,ip1jmp1,'qminimum 197') 182 184 183 185 endif !if (niso > 0) then
Note: See TracChangeset
for help on using the changeset viewer.