Changeset 5082 for LMDZ6/branches/Amaury_dev/libf/phylmd/alpale_th.F90
- Timestamp:
- Jul 19, 2024, 5:41:58 PM (2 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/alpale_th.F90
r4843 r5082 89 89 IF (first) THEN 90 90 CALL getin_p('multiply_proba_notrig',multiply_proba_notrig) 91 IF (iflag_clos_bl .LT.3) THEN91 IF (iflag_clos_bl < 3) THEN 92 92 random_notrig_max=1. 93 93 CALL getin_p('random_notrig_max',random_notrig_max) 94 ELSEIF (iflag_clos_bl .EQ.3) THEN ! (iflag_clos_bl .LT. 3)94 ELSEIF (iflag_clos_bl == 3) THEN ! (iflag_clos_bl .LT. 3) 95 95 cv_feed_area = 1.e10 ! m2 96 96 CALL getin_p('cv_feed_area', cv_feed_area) … … 120 120 !! 121 121 !--------------------------------------- 122 IF (iflag_clos_bl .LT.3) THEN122 IF (iflag_clos_bl < 3) THEN 123 123 !--------------------------------------- 124 124 ! … … 127 127 !cc nrlmd le 10/04/2012 128 128 !-----------Stochastic triggering----------- 129 if (iflag_trig_bl .ge.1) then129 if (iflag_trig_bl>=1) then 130 130 ! 131 IF (prt_level .GE.10) THEN131 IF (prt_level >= 10) THEN 132 132 WRITE(lunout,*)'cin, ale_bl_stat, alp_bl, alp_bl_stat ', & 133 133 cin, ale_bl_stat, alp_bl, alp_bl_stat … … 140 140 random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i)) 141 141 if ( random_notrig(i) > random_notrig_max ) random_notrig(i)=0. 142 if ( ale_bl_trig(i) .lt. abs(cin(i))+1.e-10 ) then142 if ( ale_bl_trig(i) < abs(cin(i))+1.e-10 ) then 143 143 tau_trig(i)=tau_trig_shallow 144 144 else … … 147 147 enddo 148 148 ! 149 IF (prt_level .GE.10) THEN149 IF (prt_level >= 10) THEN 150 150 WRITE(lunout,*)'random_notrig, tau_trig ', & 151 151 random_notrig, tau_trig … … 155 155 156 156 !Option pour re-activer l'ancien calcul de Ale_bl (iflag_trig_bl=2) 157 IF (iflag_trig_bl .eq.1) then157 IF (iflag_trig_bl==1) then 158 158 159 159 !----Tirage al\'eatoire et calcul de ale_bl_trig 160 160 do i=1,klon 161 if ( (ale_bl_stat(i) .gt.abs(cin(i))+1.e-10) ) then161 if ( (ale_bl_stat(i) > abs(cin(i))+1.e-10) ) then 162 162 proba_notrig(i)=proba_notrig(i)* & 163 163 (1.-exp(-strig(i)/s2(i)))**(n2(i)*dtime/tau_trig(i)) 164 164 ! print *, 'proba_notrig(i) ',proba_notrig(i) 165 if (random_notrig(i) .ge. proba_notrig(i)) then165 if (random_notrig(i) >= proba_notrig(i)) then 166 166 ale_bl_trig(i)=ale_bl_stat(i) 167 167 else … … 178 178 enddo 179 179 180 ELSE IF (iflag_trig_bl .ge.2) then180 ELSE IF (iflag_trig_bl>=2) then 181 181 182 182 do i=1,klon 183 if ( (Ale_bl(i) .gt.abs(cin(i))+1.e-10) ) then183 if ( (Ale_bl(i) > abs(cin(i))+1.e-10) ) then 184 184 proba_notrig(i)=proba_notrig(i)* & 185 185 (1.-exp(-strig(i)/s2(i)))**(n2(i)*dtime/tau_trig(i)) 186 186 ! print *, 'proba_notrig(i) ',proba_notrig(i) 187 if (random_notrig(i) .ge. proba_notrig(i)) then187 if (random_notrig(i) >= proba_notrig(i)) then 188 188 ale_bl_trig(i)=Ale_bl(i) 189 189 else … … 203 203 204 204 ! 205 IF (prt_level .GE.10) THEN205 IF (prt_level >= 10) THEN 206 206 WRITE(lunout,*)'proba_notrig, ale_bl_trig ', & 207 207 proba_notrig, ale_bl_trig … … 211 211 212 212 !-----------Statistical closure----------- 213 if (iflag_clos_bl .eq.1) then213 if (iflag_clos_bl==1) then 214 214 215 215 do i=1,klon 216 216 !CR: alp probabiliste 217 if (ale_bl_trig(i) .gt.0.) then217 if (ale_bl_trig(i)>0.) then 218 218 alp_bl(i)=alp_bl(i)/(1.-min(proba_notrig(i),0.999)) 219 219 endif 220 220 enddo 221 221 222 else if (iflag_clos_bl .eq.2) then222 else if (iflag_clos_bl==2) then 223 223 224 224 !CR: alp calculee dans thermcell_main … … 235 235 ! 236 236 !--------------------------------------- 237 ELSEIF (iflag_clos_bl .EQ.3) THEN ! (iflag_clos_bl .LT. 3)237 ELSEIF (iflag_clos_bl == 3) THEN ! (iflag_clos_bl .LT. 3) 238 238 !--------------------------------------- 239 239 ! … … 242 242 243 243 !-----------Stochastic triggering----------- 244 if (iflag_trig_bl .ge.1) then244 if (iflag_trig_bl>=1) then 245 245 ! 246 IF (prt_level .GE.10) THEN246 IF (prt_level >= 10) THEN 247 247 WRITE(lunout,*)'cin, ale_bl_stat, alp_bl_stat ', & 248 248 cin, ale_bl_stat, alp_bl_stat … … 251 251 ! Use ale_bl_stat (Rochetin's code) or ale_bl (old code) according to 252 252 ! iflag_trig_bl value. 253 IF (iflag_trig_bl .eq.1) then ! use ale_bl_stat (Rochetin computation)253 IF (iflag_trig_bl==1) then ! use ale_bl_stat (Rochetin computation) 254 254 do i=1,klon 255 255 ale_bl_ref(i)=ale_bl_stat(i) 256 256 enddo 257 ELSE IF (iflag_trig_bl .ge.2) then ! use ale_bl (old computation)257 ELSE IF (iflag_trig_bl>=2) then ! use ale_bl (old computation) 258 258 do i=1,klon 259 259 ale_bl_ref(i)=Ale_bl(i) … … 266 266 !!jyg proba_notrig(i)=1. 267 267 random_notrig(i)=1e6*ale_bl_stat(i)-int(1e6*ale_bl_stat(i)) 268 if ( ale_bl_trig(i) .lt. abs(cin(i))+1.e-10 ) then268 if ( ale_bl_trig(i) < abs(cin(i))+1.e-10 ) then 269 269 tau_trig(i)=tau_trig_shallow 270 270 else … … 273 273 enddo 274 274 ! 275 IF (prt_level .GE.10) THEN275 IF (prt_level >= 10) THEN 276 276 WRITE(lunout,*)'random_notrig, tau_trig ', & 277 277 random_notrig, tau_trig … … 282 282 !----alp_bl computation 283 283 do i=1,klon 284 if ( (ale_bl_ref(i) .gt.abs(cin(i))+1.e-10) ) then284 if ( (ale_bl_ref(i) > abs(cin(i))+1.e-10) ) then 285 285 birth_number = n2(i)*exp(-strig(i)/s2(i)) 286 286 birth_rate(i) = birth_number/(tau_trig(i)*cell_area(i)) … … 301 301 !----ale_bl_trig computation 302 302 do i=1,klon 303 if (random_notrig(i) .ge. proba_notrig(i)) then303 if (random_notrig(i) >= proba_notrig(i)) then 304 304 ale_bl_trig(i)=ale_bl_ref(i) 305 305 else … … 309 309 310 310 ! 311 IF (prt_level .GE.10) THEN311 IF (prt_level >= 10) THEN 312 312 WRITE(lunout,*)'proba_notrig, ale_bl_trig ', & 313 313 proba_notrig, ale_bl_trig … … 320 320 !--------------------------------------- 321 321 322 IF (prt_level .GE.10) THEN322 IF (prt_level >= 10) THEN 323 323 WRITE(lunout,*)'alpale_th: ale_bl_trig, alp_bl_stat, birth_rate ', & 324 324 ale_bl_trig(1), alp_bl_stat(1), birth_rate(1) … … 330 330 ! Couplage Thermiques/Emanuel seulement si T<0 331 331 if (iflag_coupl==2) then 332 IF (prt_level .GE.10) THEN332 IF (prt_level >= 10) THEN 333 333 WRITE(lunout,*)'Couplage Thermiques/Emanuel seulement si T<0' 334 334 ENDIF
Note: See TracChangeset
for help on using the changeset viewer.