Changeset 3800 for LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F
- Timestamp:
- Jan 15, 2021, 6:10:56 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3dmem/vlspltqs_loc.F
-
Property
svn:keywords
set to
Id
r2603 r3800 1 ! 2 ! $Id$ 3 ! 1 4 SUBROUTINE vlxqs_loc(q,pente_max,masse,u_m,qsat,ijb_x,ije_x,iq) 2 5 c … … 9 12 c -------------------------------------------------------------------- 10 13 USE parallel_lmdz 11 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 14 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi & 15 & qperemin,masseqmin,ratiomin ! MVals et CRisi 12 16 IMPLICIT NONE 13 17 c … … 342 346 DO l=1,llm 343 347 DO ij=ijb,ije 344 masse(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 345 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 348 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 349 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin) 350 if (q(ij,l,iq).gt.qperemin) then ! modif 13 nov 2020 351 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 352 else 353 Ratio(ij,l,iq2)=ratiomin 354 endif 346 355 enddo 347 356 enddo … … 362 371 DO l=1,llm 363 372 DO ij=ijb+1,ije 364 new_m=masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l) 373 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 374 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),masseqmin) 365 375 q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+ 366 376 & u_mq(ij-1,l)-u_mq(ij,l)) … … 416 426 c -------------------------------------------------------------------- 417 427 USE parallel_lmdz 418 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 428 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi & 429 & qperemin,masseqmin,ratiomin ! MVals et CRisi 419 430 USE comconst_mod, ONLY: pi 420 431 IMPLICIT NONE … … 423 434 include "paramet.h" 424 435 include "comgeom.h" 436 include "iniprint.h" 425 437 c 426 438 c … … 464 476 DATA first/.true./ 465 477 INTEGER ijb,ije 478 INTEGER ijbm,ijem 466 479 467 480 ijb=ij_begin-2*iip1 … … 724 737 ijb=ij_begin-2*iip1 725 738 ije=ij_end+2*iip1 739 ijbm=ij_begin-iip1 740 ijem=ij_end+iip1 726 741 if (pole_nord) ijb=ij_begin 727 742 if (pole_sud) ije=ij_end 728 743 if (pole_nord) ijbm=ij_begin 744 if (pole_sud) ijem=ij_end 745 746 !write(lunout,*) 'vlspltqs 737: iq,ijb,ije=',iq,ijb,ije 747 !write(lunout,*) 'ij_begin,ij_end=',ij_begin,ij_end 748 !write(lunout,*) 'pole_nord,pole_sud=',pole_nord,pole_sud 729 749 if (nqfils(iq).gt.0) then 730 750 do ifils=1,nqdesc(iq) … … 732 752 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK) 733 753 DO l=1,llm 754 ! modif des bornes: CRisi 16 nov 2020 755 ! d'abord masse avec bornes corrigées 756 DO ij=ijbm,ijem 757 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 758 masse(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin) 759 enddo !DO ij=ijbm,ijem 760 761 ! ensuite Ratio avec anciennes bornes 734 762 DO ij=ijb,ije 735 masse(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 736 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 737 enddo 738 enddo 763 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 764 !write(lunout,*) 'ij,l,q(ij,l,iq)=',ij,l,q(ij,l,iq) 765 if (q(ij,l,iq).gt.qperemin) then ! modif 13 nov 2020 766 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 767 else 768 Ratio(ij,l,iq2)=ratiomin 769 endif 770 enddo !DO ij=ijbm,ijem 771 enddo !DO l=1,llm 739 772 c$OMP END DO NOWAIT 740 773 enddo !do ifils=1,nqdesc(iq) 741 774 do ifils=1,nqfils(iq) 742 775 iq2=iqfils(ifils,iq) 776 !write(lunout,*) 'vly: appel recursiv vly iq2=',iq2 743 777 call vly_loc(Ratio,pente_max,masse,qbyv,iq2) 744 778 enddo !do ifils=1,nqfils(iq) -
Property
svn:keywords
set to
Note: See TracChangeset
for help on using the changeset viewer.