Changeset 3852 for LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/vlspltqs_loc.F
- Timestamp:
- Feb 22, 2021, 5:28:31 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/LMDZ-tracers/libf/dyn3dmem/vlspltqs_loc.F
r3851 r3852 12 12 c -------------------------------------------------------------------- 13 13 USE parallel_lmdz 14 USE infotrac, ONLY : nqtot, nqfils,nqdesc,iqfils,! CRisi &14 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 15 15 & qperemin,masseqmin,ratiomin ! MVals et CRisi 16 16 IMPLICIT NONE … … 40 40 REAL u_mq(ijb_u:ije_u,llm) 41 41 REAL Ratio(ijb_u:ije_u,llm,nqtot) ! CRisi 42 INTEGER i fils,iq2 ! CRisi43 42 INTEGER ichld,iq2 ! CRisi 43 TYPE(tra), POINTER :: tr 44 44 45 45 REAL SSUM … … 47 47 48 48 INTEGER ijb,ije,ijb_x,ije_x 49 49 50 tr => tracers(iq) 51 50 52 !write(*,*) 'vlspltqs 58: entree vlxqs_loc, iq,ijb_x=', 51 53 ! & iq,ijb_x … … 337 339 ! CRisi: appel récursif de l'advection sur les fils. 338 340 ! Il faut faire ça avant d'avoir mis à jour q et masse 339 !write(*,*) 'vlspltqs 336: iq,ijb_x, nqfils(iq)=',340 ! & iq,ijb_x, nqfils(iq)341 342 if (nqfils(iq).gt.0) then343 do i fils=1,nqdesc(iq)344 iq2= iqfils(ifils,iq)341 !write(*,*) 'vlspltqs 336: iq,ijb_x,tr%nchld=', 342 ! & iq,ijb_x,tr%nchld 343 344 if(tr%ndesc > 0) then 345 do ichld=1,tr%ndesc 346 iq2=tr%idesc(ichld) 345 347 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 346 348 DO l=1,llm … … 356 358 enddo 357 359 c$OMP END DO NOWAIT 358 enddo !do i fils=1,nqfils(iq)359 do i fils=1,nqfils(iq)360 iq2= iqfils(ifils,iq)360 enddo !do ichld=1,tr%nchld 361 do ichld=1,tr%nchld 362 iq2=tr%idesc(ichld) 361 363 !write(*,*) 'vlxqs 349: on appelle vlx pour iq2=',iq2 362 364 call vlx_loc(Ratio,pente_max,masse,u_mq,ijb_x,ije_x,iq2) 363 enddo !do i fils=1,nqfils(iq)364 endif !if (nqfils(iq).gt.0) then365 enddo !do ichld=1,tr%nchld 366 endif !if(tr%ndesc > 0) 365 367 ! end CRisi 366 368 … … 389 391 390 392 ! retablir les fils en rapport de melange par rapport a l'air: 391 if (nqfils(iq).gt.0) then392 do i fils=1,nqdesc(iq)393 iq2= iqfils(ifils,iq)393 if(tr%ndesc > 0) then 394 do ichld=1,tr%ndesc 395 iq2=tr%idesc(ichld) 394 396 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 395 397 DO l=1,llm … … 402 404 enddo 403 405 c$OMP END DO NOWAIT 404 enddo !do i fils=1,nqdesc(iq)405 endif !if (nqfils(iq).gt.0) then406 enddo !do ichld=1,tr%ndesc 407 endif !if(tr%ndesc > 0) 406 408 407 409 !write(*,*) 'vlspltqs 399: iq,ijb_x=',iq,ijb_x … … 426 428 c -------------------------------------------------------------------- 427 429 USE parallel_lmdz 428 USE infotrac, ONLY : nqtot, nqfils,nqdesc,iqfils,! CRisi &430 USE infotrac, ONLY : nqtot, tracers, tra, ! CRisi & 429 431 & qperemin,masseqmin,ratiomin ! MVals et CRisi 430 432 USE comconst_mod, ONLY: pi … … 470 472 c 471 473 REAL Ratio(ijb_u:ije_u,llm,nqtot) ! CRisi 472 INTEGER ifils,iq2 ! CRisi 474 INTEGER ichld,iq2 ! CRisi 475 TYPE(tra), POINTER :: tr 473 476 474 477 REAL SSUM … … 733 736 ! CRisi: appel récursif de l'advection sur les fils. 734 737 ! Il faut faire ça avant d'avoir mis à jour q et masse 735 !write(*,*) 'vlyqs 689: iq, nqfils(iq)=',iq,nqfils(iq)738 !write(*,*) 'vlyqs 689: iq,tr%nchld=',iq,tr%nchld 736 739 737 740 ijb=ij_begin-2*iip1 … … 747 750 !write(lunout,*) 'ij_begin,ij_end=',ij_begin,ij_end 748 751 !write(lunout,*) 'pole_nord,pole_sud=',pole_nord,pole_sud 749 if (nqfils(iq).gt.0) then750 do i fils=1,nqdesc(iq)751 iq2= iqfils(ifils,iq)752 if(tr%ndesc > 0) then 753 do ichld=1,tr%ndesc 754 iq2=tr%idesc(ichld) 752 755 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 753 756 DO l=1,llm … … 771 774 enddo !DO l=1,llm 772 775 c$OMP END DO NOWAIT 773 enddo !do i fils=1,nqdesc(iq)774 do i fils=1,nqfils(iq)775 iq2= iqfils(ifils,iq)776 enddo !do ichld=1,tr%ndesc 777 do ichld=1,tr%nchld 778 iq2=tr%idesc(ichld) 776 779 !write(lunout,*) 'vly: appel recursiv vly iq2=',iq2 777 780 call vly_loc(Ratio,pente_max,masse,qbyv,iq2) 778 enddo !do i fils=1,nqfils(iq)779 endif !if (nqfils(iq).gt.0) then781 enddo !do ichld=1,tr%nchld 782 endif !if(tr%ndesc > 0) 780 783 781 784 … … 856 859 ! if (pole_sud) ije=ij_end-iip1 857 860 858 if (nqfils(iq).gt.0) then859 do i fils=1,nqdesc(iq)860 iq2= iqfils(ifils,iq)861 if(tr%ndesc > 0) then 862 do ichld=1,tr%ndesc 863 iq2=tr%idesc(ichld) 861 864 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 862 865 DO l=1,llm … … 866 869 enddo 867 870 c$OMP END DO NOWAIT 868 enddo !do i fils=1,nqdesc(iq)869 endif !if (nqfils(iq).gt.0) then871 enddo !do ichld=1,tr%ndesc 872 endif !if(tr%ndesc > 0) 870 873 871 874
Note: See TracChangeset
for help on using the changeset viewer.