Changeset 4007 for LMDZ6/trunk/libf/dyn3d
- Timestamp:
- Nov 17, 2021, 12:06:46 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/dyn3d/vlsplt.F
r2603 r4007 139 139 END 140 140 RECURSIVE SUBROUTINE vlx(q,pente_max,masse,u_m,iq) 141 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 141 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi 142 & qperemin,masseqmin,ratiomin ! MVals et CRisi 142 143 143 144 c Auteurs: P.Le Van, F.Hourdin, F.Forget … … 456 457 DO ij=iip2,ip1jm 457 458 ! On a besoin de q et masse seulement entre iip2 et ip1jm 458 masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 459 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 459 !masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 460 !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 461 !Mvals: veiller a ce qu'on n'ait pas de denominateur nul 462 masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin) 463 if (q(ij,l,iq).gt.qperemin) then 464 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 465 else 466 Ratio(ij,l,iq2)=ratiomin 467 endif 460 468 enddo 461 469 enddo … … 473 481 DO l=1,llm 474 482 DO ij=iip2+1,ip1jm 475 new_m=masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l) 483 !MVals: veiller a ce qu'on ait pas de denominateur nul 484 new_m=max(masse(ij,l,iq)+u_m(ij-1,l)-u_m(ij,l),masseqmin) 476 485 q(ij,l,iq)=(q(ij,l,iq)*masse(ij,l,iq)+ 477 486 & u_mq(ij-1,l)-u_mq(ij,l)) … … 489 498 ! On calcule q entre iip2+1,ip1jm -> on fait pareil pour ratio 490 499 ! puis on boucle en longitude 491 if (nq desc(iq).gt.0) then500 if (nqfils(iq).gt.0) then 492 501 do ifils=1,nqdesc(iq) 493 502 iq2=iqfils(ifils,iq) … … 510 519 END 511 520 RECURSIVE SUBROUTINE vly(q,pente_max,masse,masse_adv_v,iq) 512 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 521 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi 522 & qperemin,masseqmin 513 523 c 514 524 c Auteurs: P.Le Van, F.Hourdin, F.Forget … … 777 787 ! attention, chaque fils doit avoir son masseq, sinon, le 1er 778 788 ! fils ecrase le masseq de ses freres. 779 masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 780 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 789 !masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 790 !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 791 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 792 masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin) 793 if (q(ij,l,iq).gt.qperemin) then 794 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 795 else 796 Ratio(ij,l,iq2)=ratiomin 797 endif 781 798 enddo 782 799 enddo … … 871 888 END 872 889 RECURSIVE SUBROUTINE vlz(q,pente_max,masse,w,iq) 873 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils ! CRisi 890 USE infotrac, ONLY : nqtot,nqfils,nqdesc,iqfils, ! CRisi 891 & qperemin,masseqmin,ratiomin ! MVals et CRisi 874 892 c 875 893 c Auteurs: P.Le Van, F.Hourdin, F.Forget … … 997 1015 DO l=1,llm 998 1016 DO ij=1,ip1jmp1 999 masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 1000 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 1017 !masseq(ij,l,iq2)=masse(ij,l,iq)*q(ij,l,iq) 1018 !Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 1019 !MVals: veiller a ce qu'on n'ait pas de denominateur nul 1020 masseq(ij,l,iq2)=max(masse(ij,l,iq)*q(ij,l,iq),masseqmin) 1021 if (q(ij,l,iq).gt.qperemin) then 1022 Ratio(ij,l,iq2)=q(ij,l,iq2)/q(ij,l,iq) 1023 else 1024 Ratio(ij,l,iq2)=ratiomin 1025 endif 1001 1026 enddo 1002 1027 enddo
Note: See TracChangeset
for help on using the changeset viewer.