Changeset 4050 for LMDZ6/trunk/libf/dyn3d/advtrac.F90
- Timestamp:
- Dec 23, 2021, 6:54:17 PM (2 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/advtrac.F90
r2622 r4050 9 9 ! M.A Filiberti (04/2002) 10 10 ! 11 USE infotrac, ONLY: nqtot, iadv,nqperes,ok_iso_verif11 USE infotrac, ONLY: nqtot, tracers, nqperes,ok_iso_verif 12 12 USE control_mod, ONLY: iapp_tracvl, day_step 13 13 USE comconst_mod, ONLY: dtvr … … 72 72 real cflz(ip1jmp1,llm) 73 73 real, save :: cflxmax(llm),cflymax(llm),cflzmax(llm) 74 INTEGER :: iadv 74 75 75 76 IF(iadvtr.EQ.0) THEN … … 226 227 do iq=1,nqperes 227 228 ! call clock(t_initial) 228 if(iadv(iq) == 0) cycle 229 iadv = tracers(iq)%iadv 230 SELECT CASE(iadv) 231 CASE(0); CYCLE 232 CASE(10) 229 233 ! ---------------------------------------------------------------- 230 234 ! Schema de Van Leer I MUSCL 231 235 ! ---------------------------------------------------------------- 232 if(iadv(iq).eq.10) THEN233 236 ! CRisi: on fait passer tout q pour avoir acces aux fils 234 237 … … 236 239 call vlsplt(q,2.,massem,wg,pbarug,pbarvg,dtvr,iq) 237 240 241 CASE(14) 238 242 ! ---------------------------------------------------------------- 239 243 ! Schema "pseudo amont" + test sur humidite specifique 240 244 ! pour la vapeur d'eau. F. Codron 241 245 ! ---------------------------------------------------------------- 242 else if(iadv(iq).eq.14) then243 246 ! 244 247 !write(*,*) 'advtrac 248: iq,q(1721,19,:)=',iq,q(1721,19,:) … … 246 249 pbarug,pbarvg,dtvr,p,pk,teta,iq) 247 250 251 CASE(12) 248 252 ! ---------------------------------------------------------------- 249 253 ! Schema de Frederic Hourdin 250 254 ! ---------------------------------------------------------------- 251 else if(iadv(iq).eq.12) then252 255 ! Pas de temps adaptatif 253 call adaptdt(iadv (iq),dtbon,n,pbarug,massem)256 call adaptdt(iadv,dtbon,n,pbarug,massem) 254 257 if (n.GT.1) then 255 258 write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', & … … 259 262 call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,1) 260 263 end do 261 else if(iadv(iq).eq.13) then264 CASE(13) 262 265 ! Pas de temps adaptatif 263 call adaptdt(iadv (iq),dtbon,n,pbarug,massem)266 call adaptdt(iadv,dtbon,n,pbarug,massem) 264 267 if (n.GT.1) then 265 268 write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', & … … 269 272 call advn(q(1,1,iq),massem,wg,pbarug,pbarvg,dtbon,2) 270 273 end do 274 CASE(20) 271 275 ! ---------------------------------------------------------------- 272 276 ! Schema de pente SLOPES 273 277 ! ---------------------------------------------------------------- 274 else if (iadv(iq).eq.20) then275 278 call pentes_ini (q(1,1,iq),wg,massem,pbarug,pbarvg,0) 276 279 280 CASE(30) 277 281 ! ---------------------------------------------------------------- 278 282 ! Schema de Prather 279 283 ! ---------------------------------------------------------------- 280 else if (iadv(iq).eq.30) then281 284 ! Pas de temps adaptatif 282 call adaptdt(iadv (iq),dtbon,n,pbarug,massem)285 call adaptdt(iadv,dtbon,n,pbarug,massem) 283 286 if (n.GT.1) then 284 287 write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', & … … 288 291 n,dtbon) 289 292 293 CASE(11,16,17,18) 290 294 ! ---------------------------------------------------------------- 291 295 ! Schemas PPM Lin et Rood 292 296 ! ---------------------------------------------------------------- 293 else if (iadv(iq).eq.11.OR.(iadv(iq).GE.16.AND. &294 iadv(iq).LE.18)) then295 297 296 298 ! Test sur le flux horizontal 297 299 ! Pas de temps adaptatif 298 call adaptdt(iadv (iq),dtbon,n,pbarug,massem)300 call adaptdt(iadv,dtbon,n,pbarug,massem) 299 301 if (n.GT.1) then 300 302 write(*,*) 'WARNING horizontal dt=',dtbon,'dtvr=', & … … 316 318 317 319 !----------------------------------------------------------- 318 ! Ss-prg interface LMDZ.4->PPM3d 320 ! Ss-prg interface LMDZ.4->PPM3d (ss-prg de Lin) 319 321 !----------------------------------------------------------- 320 322 … … 327 329 ! VL (version PPM) horiz. et PPM vert. 328 330 !---------------------------------------------------------------- 329 if (iadv(iq).eq.11) then330 ! Ss-prg PPM3d de Lin331 SELECT CASE(iadv) 332 CASE(11) 331 333 call ppm3d(1,qppm(1,1,iq), & 332 334 psppm,psppm, & … … 335 337 fill,dum,220.) 336 338 339 CASE(16) 337 340 !------------------------------------------------------------- 338 341 ! Monotonic PPM 339 342 !------------------------------------------------------------- 340 else if (iadv(iq).eq.16) then341 ! Ss-prg PPM3d de Lin342 343 call ppm3d(1,qppm(1,1,iq), & 343 344 psppm,psppm, & … … 347 348 !------------------------------------------------------------- 348 349 350 CASE(17) 349 351 !------------------------------------------------------------- 350 352 ! Semi Monotonic PPM 351 353 !------------------------------------------------------------- 352 else if (iadv(iq).eq.17) then353 ! Ss-prg PPM3d de Lin354 354 call ppm3d(1,qppm(1,1,iq), & 355 355 psppm,psppm, & … … 359 359 !------------------------------------------------------------- 360 360 361 CASE(18) 361 362 !------------------------------------------------------------- 362 363 ! Positive Definite PPM 363 364 !------------------------------------------------------------- 364 else if (iadv(iq).eq.18) then365 ! Ss-prg PPM3d de Lin366 365 call ppm3d(1,qppm(1,1,iq), & 367 366 psppm,psppm, & … … 370 369 fill,dum,220.) 371 370 !------------------------------------------------------------- 372 endif371 END SELECT 373 372 enddo 374 373 !----------------------------------------------------------------- … … 376 375 !----------------------------------------------------------------- 377 376 call interpost(q(1,1,iq),qppm(1,1,iq)) 378 endif377 END SELECT 379 378 !---------------------------------------------------------------------- 380 379
Note: See TracChangeset
for help on using the changeset viewer.