Changeset 5158 for LMDZ6/branches/Amaury_dev/libf/dyn3d/vlsplt.F90
- Timestamp:
- Aug 2, 2024, 2:12:03 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/dyn3d/vlsplt.F90
r5136 r5158 71 71 CALL SCOPY(ijp1llm, masse, 1, zm(1, 1, iq), 1) 72 72 73 doifils = 1, tracers(iq)%nqDescen73 DO ifils = 1, tracers(iq)%nqDescen 74 74 iq2 = tracers(iq)%iqDescen(ifils) 75 75 CALL SCOPY(ijp1llm, q(1, 1, iq2), 1, zq(1, 1, iq2), 1) … … 91 91 ENDDO 92 92 ! CRisi: aussi pour les fils 93 doifils = 1, tracers(iq)%nqDescen93 DO ifils = 1, tracers(iq)%nqDescen 94 94 iq2 = tracers(iq)%iqDescen(ifils) 95 95 DO l = 1, llm … … 317 317 i = ijq - (j - 1) * iip1 318 318 ! accumulation pour les mailles completements advectees 319 dowhile(zu_m>masse(ijq, l, iq))319 DO while(zu_m>masse(ijq, l, iq)) 320 320 u_mq(ij, l) = u_mq(ij, l) + q(ijq, l, iq) & 321 321 * masse(ijq, l, iq) … … 332 332 i = ijq - (j - 1) * iip1 333 333 ! accumulation pour les mailles completements advectees 334 dowhile(-zu_m>masse(ijq, l, iq))334 DO while(-zu_m>masse(ijq, l, iq)) 335 335 u_mq(ij, l) = u_mq(ij, l) - q(ijq, l, iq) & 336 336 * masse(ijq, l, iq) … … 361 361 !WRITE(*,*) 'vlsplt 326: iq,nqDesc(iq)=',iq,tracers(iq)%nqDescen 362 362 363 doifils = 1, tracers(iq)%nqDescen363 DO ifils = 1, tracers(iq)%nqDescen 364 364 iq2 = tracers(iq)%iqDescen(ifils) 365 365 DO l = 1, llm … … 378 378 enddo 379 379 enddo 380 doifils = 1, tracers(iq)%nqChildren380 DO ifils = 1, tracers(iq)%nqChildren 381 381 iq2 = tracers(iq)%iqDescen(ifils) 382 382 CALL vlx(Ratio, pente_max, masseq, u_mq, iq2) … … 405 405 ! On calcule q entre iip2+1,ip1jm -> on fait pareil pour ratio 406 406 ! puis on boucle en longitude 407 doifils = 1, tracers(iq)%nqDescen407 DO ifils = 1, tracers(iq)%nqDescen 408 408 iq2 = tracers(iq)%iqDescen(ifils) 409 409 DO l = 1, llm … … 431 431 ! ******************************************************************** 432 432 ! q,masse_adv_v,w sont des arguments d'entree pour le s-pg .... 433 ! dq 433 ! dq sont des arguments de sortie pour le s-pg .... 434 434 ! 435 435 ! … … 479 479 PRINT*, 'Shema Amont nouveau appele dans Vanleer ' 480 480 first = .FALSE. 481 doi = 2, iip1481 DO i = 2, iip1 482 482 coslon(i) = cos(rlonv(i)) 483 483 sinlon(i) = sin(rlonv(i)) … … 673 673 ! WRITE(*,*) 'vly 689: iq,nqDesc(iq)=',iq,tracers(iq)%nqDescen 674 674 675 doifils = 1, tracers(iq)%nqDescen675 DO ifils = 1, tracers(iq)%nqDescen 676 676 iq2 = tracers(iq)%iqDescen(ifils) 677 677 DO l = 1, llm … … 692 692 enddo 693 693 694 doifils = 1, tracers(iq)%nqDescen694 DO ifils = 1, tracers(iq)%nqDescen 695 695 iq2 = tracers(iq)%iqDescen(ifils) 696 696 CALL vly(Ratio, pente_max, masseq, qbyv, iq2) … … 709 709 massepn = ssum(iim, masse(1, l, iq), 1) 710 710 qpn = 0. 711 doij = 1, iim711 DO ij = 1, iim 712 712 qpn = qpn + masse(ij, l, iq) * q(ij, l, iq) 713 713 enddo 714 714 qpn = (qpn + convpn) / (massepn + convmpn) 715 doij = 1, iip1715 DO ij = 1, iip1 716 716 q(ij, l, iq) = qpn 717 717 enddo … … 720 720 masseps = ssum(iim, masse(ip1jm + 1, l, iq), 1) 721 721 qps = 0. 722 doij = ip1jm + 1, ip1jmp1 - 1722 DO ij = ip1jm + 1, ip1jmp1 - 1 723 723 qps = qps + masse(ij, l, iq) * q(ij, l, iq) 724 724 enddo 725 725 qps = (qps + convps) / (masseps + convmps) 726 doij = ip1jm + 1, ip1jmp1726 DO ij = ip1jm + 1, ip1jmp1 727 727 q(ij, l, iq) = qps 728 728 enddo … … 730 730 731 731 ! retablir les fils en rapport de melange par rapport a l'air: 732 doifils = 1, tracers(iq)%nqDescen732 DO ifils = 1, tracers(iq)%nqDescen 733 733 iq2 = tracers(iq)%iqDescen(ifils) 734 734 DO l = 1, llm … … 752 752 ! ******************************************************************** 753 753 ! q,pbaru,pbarv,w sont des arguments d'entree pour le s-pg .... 754 ! dq 754 ! dq sont des arguments de sortie pour le s-pg .... 755 755 ! -------------------------------------------------------------------- 756 756 IMPLICIT NONE … … 821 821 822 822 DO l = 1, llm - 1 823 doij = 1, ip1jmp1823 DO ij = 1, ip1jmp1 824 824 IF(w(ij, l + 1)>0.) THEN 825 825 sigw = w(ij, l + 1) / masse(ij, l + 1, iq) … … 841 841 ! Il faut faire ça avant d'avoir mis à jour q et masse 842 842 ! !WRITE(*,*) 'vlsplt 942: iq,nqChildren(iq)=',iq,nqChildren(iq) 843 doifils = 1, tracers(iq)%nqDescen843 DO ifils = 1, tracers(iq)%nqDescen 844 844 iq2 = tracers(iq)%iqDescen(ifils) 845 845 DO l = 1, llm … … 858 858 enddo 859 859 860 doifils = 1, tracers(iq)%nqChildren860 DO ifils = 1, tracers(iq)%nqChildren 861 861 iq2 = tracers(iq)%iqDescen(ifils) 862 862 CALL vlz(Ratio, pente_max, masseq, wq, iq2) … … 874 874 875 875 ! retablir les fils en rapport de melange par rapport a l'air: 876 doifils = 1, tracers(iq)%nqDescen876 DO ifils = 1, tracers(iq)%nqDescen 877 877 iq2 = tracers(iq)%iqDescen(ifils) 878 878 DO l = 1, llm
Note: See TracChangeset
for help on using the changeset viewer.