- Timestamp:
- Aug 2, 2024, 2:12:03 PM (3 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_plume_6A.f90
r5119 r5158 170 170 ! dans une couche l>1 171 171 !------------------------------------------------------------------------------ 172 doig = 1, ngrid172 DO ig = 1, ngrid 173 173 ! Le panache va prendre au debut les caracteristiques de l'air contenu 174 174 ! dans cette couche. … … 189 189 !boucle de calcul de la vitesse verticale dans le thermique 190 190 !============================================================================== 191 dol = 2, nlay - 1191 DO l = 2, nlay - 1 192 192 !============================================================================== 193 193 … … 195 195 ! On decide si le thermique est encore actif ou non 196 196 ! AFaire : Il faut sans doute ajouter entr_star a alim_star dans ce test 197 doig = 1, ngrid197 DO ig = 1, ngrid 198 198 active(ig) = active(ig) & 199 199 & .AND. zw2(ig, l)>1.e-10 & … … 215 215 ztemp(:) = zpspsk(:, l) * ztla(:, l - 1) 216 216 CALL thermcell_qsat(ngrid, active, pplev(:, l), ztemp, zqta(:, l - 1), zqsat(:)) 217 doig = 1, ngrid217 DO ig = 1, ngrid 218 218 ! PRINT*,'active',active(ig),ig,l 219 219 IF(active(ig)) THEN … … 252 252 ! afin de faire moins de calcul dans la boucle 253 253 !-------------------------------------------------- 254 dowhile (zlmelup>zltup)254 DO while (zlmelup>zltup) 255 255 lt = lt + 1 256 256 zlt = zlev(ig, lt) … … 334 334 zdz2 = zlev(ig, lt) - zlev(ig, l) 335 335 336 dowhile (lmel>zdz2)336 DO while (lmel>zdz2) 337 337 lt = lt + 1 338 338 zlt = zlev(ig, lt) … … 440 440 !------------------------------------------------- 441 441 442 doig = 1, ngrid442 DO ig = 1, ngrid 443 443 IF (active(ig)) THEN 444 444 ! zw2m=max(0.5*(w_est(ig,l)+w_est(ig,l+1)),0.1) … … 530 530 531 531 activetmp(:) = active(:) .AND. f_star(:, l + 1)>1.e-10 532 doig = 1, ngrid532 DO ig = 1, ngrid 533 533 IF (activetmp(ig)) THEN 534 534 Zsat = .FALSE. … … 545 545 ztemp(:) = zpspsk(:, l) * ztla(:, l) 546 546 CALL thermcell_qsat(ngrid, activetmp, pplev(:, l), ztemp, zqta(:, l), zqsatth(:, l)) 547 doig = 1, ngrid547 DO ig = 1, ngrid 548 548 IF (activetmp(ig)) THEN 549 549 ! on ecrit de maniere conservative (sat ou non) … … 614 614 615 615 nbpb = 0 616 doig = 1, ngrid616 DO ig = 1, ngrid 617 617 IF (zw2(ig, l + 1)>0. .AND. zw2(ig, l + 1)<1.e-10) THEN 618 618 ! stop 'On tombe sur le cas particulier de thermcell_dry' … … 658 658 659 659 !on recalcule alim_star_tot 660 doig = 1, ngrid660 DO ig = 1, ngrid 661 661 alim_star_tot(ig) = 0. 662 662 enddo 663 doig = 1, ngrid664 dol = 1, lalim(ig) - 1663 DO ig = 1, ngrid 664 DO l = 1, lalim(ig) - 1 665 665 alim_star_tot(ig) = alim_star_tot(ig) + alim_star(ig, l) 666 666 enddo … … 817 817 ! Definition de l'alimentation 818 818 !------------------------------------------------------------------------- 819 dol = 1, nlay - 1820 doig = 1, ngrid819 DO l = 1, nlay - 1 820 DO ig = 1, ngrid 821 821 IF (ztv(ig, l)> ztv(ig, l + 1) .AND. ztv(ig, 1)>=ztv(ig, l)) THEN 822 822 alim_star(ig, l) = MAX((ztv(ig, l) - ztv(ig, l + 1)), 0.) & … … 827 827 enddo 828 828 enddo 829 dol = 1, nlay830 doig = 1, ngrid829 DO l = 1, nlay 830 DO ig = 1, ngrid 831 831 IF (alim_star_tot(ig) > 1.e-10) THEN 832 832 alim_star(ig, l) = alim_star(ig, l) / alim_star_tot(ig) … … 845 845 ! dans une couche l>1 846 846 !------------------------------------------------------------------------------ 847 doig = 1, ngrid847 DO ig = 1, ngrid 848 848 ! Le panache va prendre au debut les caracteristiques de l'air contenu 849 849 ! dans cette couche. … … 864 864 !boucle de calcul de la vitesse verticale dans le thermique 865 865 !============================================================================== 866 dol = 2, nlay - 1866 DO l = 2, nlay - 1 867 867 !============================================================================== 868 868 … … 870 870 ! On decide si le thermique est encore actif ou non 871 871 ! AFaire : Il faut sans doute ajouter entr_star a alim_star dans ce test 872 doig = 1, ngrid872 DO ig = 1, ngrid 873 873 active(ig) = active(ig) & 874 874 & .AND. zw2(ig, l)>1.e-10 & … … 891 891 CALL thermcell_qsat(ngrid, active, pplev(:, l), ztemp, zqta(:, l - 1), zqsat(:)) 892 892 893 doig = 1, ngrid893 DO ig = 1, ngrid 894 894 ! PRINT*,'active',active(ig),ig,l 895 895 IF(active(ig)) THEN … … 922 922 !------------------------------------------------- 923 923 924 doig = 1, ngrid924 DO ig = 1, ngrid 925 925 IF (active(ig)) THEN 926 926 zw2m = max(0.5 * (w_est(ig, l) + w_est(ig, l + 1)), 0.1) … … 959 959 !--------------------------------------------------------------------------- 960 960 activetmp(:) = active(:) .AND. f_star(:, l + 1)>1.e-10 961 doig = 1, ngrid961 DO ig = 1, ngrid 962 962 IF (activetmp(ig)) THEN 963 963 Zsat = .FALSE. … … 975 975 CALL thermcell_qsat(ngrid, activetmp, pplev(:, l), ztemp, zqta(:, l), zqsatth(:, l)) 976 976 977 doig = 1, ngrid977 DO ig = 1, ngrid 978 978 IF (activetmp(ig)) THEN 979 979 ! on ecrit de maniere conservative (sat ou non) … … 1003 1003 1004 1004 nbpb = 0 1005 doig = 1, ngrid1005 DO ig = 1, ngrid 1006 1006 IF (zw2(ig, l + 1)>0. .AND. zw2(ig, l + 1)<1.e-10) THEN 1007 1007 ! stop 'On tombe sur le cas particulier de thermcell_dry' … … 1046 1046 1047 1047 !on recalcule alim_star_tot 1048 doig = 1, ngrid1048 DO ig = 1, ngrid 1049 1049 alim_star_tot(ig) = 0. 1050 1050 enddo 1051 doig = 1, ngrid1052 dol = 1, lalim(ig) - 11051 DO ig = 1, ngrid 1052 DO l = 1, lalim(ig) - 1 1053 1053 alim_star_tot(ig) = alim_star_tot(ig) + alim_star(ig, l) 1054 1054 enddo
Note: See TracChangeset
for help on using the changeset viewer.