Changeset 3800 for LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F
- Timestamp:
- Jan 15, 2021, 6:10:56 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F
-
Property
svn:keywords
set to
Id
r2600 r3800 1 ! 2 ! $Id$ 3 ! 1 4 SUBROUTINE qminimum_loc( q,nqtot,deltap ) 2 5 USE parallel_lmdz 3 USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif 6 USE infotrac, ONLY: ok_isotopes,ntraciso,iqiso,ok_iso_verif, & 7 & ratiomin,qperemin ! CRisi 23nov2020 4 8 IMPLICIT none 5 9 c … … 49 53 c 50 54 51 !write( *,*) 'qminimum 52: entree'55 !write(lunout,*) 'qminimum 52: entree' 52 56 if (ok_iso_verif) then 53 57 call check_isotopes(q,ij_begin,ij_end,'qminimum 52') … … 60 64 q_follow(ijb:ije,:,1:2)=q(ijb:ije,:,1:2) 61 65 62 !write( *,*) 'qminimum 57'66 !write(lunout,*) 'qminimum 57' 63 67 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 64 68 DO 1000 k = 1, llm … … 85 89 c le defaut en prennant de l'eau vapeur de la couche au-dessous. 86 90 c 87 !write( *,*) 'qminimum 81'91 !write(lunout,*) 'qminimum 81' 88 92 iq = iq_vap 89 93 c … … 113 117 c doit imprimer un message d'avertissement (saturation possible). 114 118 c 115 !write( *,*) 'qminimum 106'119 !write(lunout,*) 'qminimum 106' 116 120 nb_pump=0 117 121 c$OMP DO SCHEDULE(STATIC) … … 135 139 ENDIF 136 140 137 !write( *,*) 'qminimum 128'141 !write(lunout,*) 'qminimum 128' 138 142 if (ok_isotopes) then 143 !write(lunout,*) 'qminimum 140' 139 144 ! CRisi: traiter de même les traceurs d'eau 140 145 ! Mais il faut les prendre à l'envers pour essayer de conserver la … … 144 149 ! rien ici et on croise les doigts pour que ça ne soit pas trop 145 150 ! génant 151 ! en fait, si, c'est genant quand les isotopes doivent eux même transporter des 152 ! traceurs -> apporter aussi un peu d'isotopes... Combien? 153 ! Essayer tnat/2 = -500 permil? C'est déjà mieux que -1000 154 ! permil... 155 ! pb: que faire pour les traceurs? 156 c$OMP DO SCHEDULE(STATIC) 146 157 DO i = ijb, ije 147 158 if (zx_pump(i).gt.0.0) then … … 149 160 endif !if (zx_pump(i).gt.0.0) then 150 161 enddo !DO i = ijb, ije 162 c$OMP END DO 151 163 152 164 ! 2) transfert de vap vers les couches plus hautes 153 !write( *,*) 'qminimum 139'165 !write(lunout,*) 'qminimum 158' 154 166 do k=2,llm 167 c$OMP DO SCHEDULE(STATIC) 155 168 DO i = ijb, ije 156 169 if (zx_defau_diag(i,k,iq_vap).gt.0.0) then 157 ! on ajoute la vapeur en k 158 do ixt=1,ntraciso 170 ! on ajoute la vapeur en k 171 ! write(lunout,*) 'i,k,q_follow(i,k-1,iq_vap)=', 172 ! : i,k,q_follow(i,k-1,iq_vap) 173 if (q_follow(i,k-1,iq_vap).lt.qperemin) then 174 write(lunout,*) 'tmp qmin: on stoppe' 175 write(lunout,*) 'zx_pump(i)=',zx_pump(i) 176 write(lunout,*) 'q_follow(i,:,iq_vap)=', 177 : q_follow(i,:,iq_vap) 178 write(lunout,*) 'k=',k 179 call abort_gcm("qminimum","not enough vapor",1) 180 endif 181 do ixt=1,ntraciso 182 ! write(lunout,*) 'qmin 168: ixt=',ixt 183 ! write(lunout,*) 'q(i,k,iqiso(ixt,iq_vap)=', 184 ! : q(i,k,iqiso(ixt,iq_vap)) 185 ! write(lunout,*) 'zx_defau_diag(i,k,iq_vap)=', 186 ! : zx_defau_diag(i,k,iq_vap) 187 ! write(lunout,*) 'q(i,k-1,iqiso(ixt,iq_vap)=', 188 ! : q(i,k-1,iqiso(ixt,iq_vap)) 189 159 190 q(i,k,iqiso(ixt,iq_vap))=q(i,k,iqiso(ixt,iq_vap)) 160 191 : +zx_defau_diag(i,k,iq_vap) … … 207 238 endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then 208 239 enddo !DO i = 1, ip1jmp1 209 enddo !do k=2,llm 240 c$OMP END DO 241 enddo !do k=2,llm 210 242 211 243 if (ok_iso_verif) then … … 217 249 !write(*,*) 'qminimum 164' 218 250 do k=1,llm 251 c$OMP DO SCHEDULE(STATIC) 219 252 DO i = ijb, ije 220 253 if (zx_defau_diag(i,k,iq_liq).gt.0.0) then … … 235 268 : -zx_defau_diag(i,k,iq_liq) 236 269 endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then 237 enddo !DO i = 1, ip1jmp1 270 enddo !DO i = ijb, ije 271 c$OMP END DO 238 272 enddo !do k=2,llm 239 273 -
Property
svn:keywords
set to
Note: See TracChangeset
for help on using the changeset viewer.