- Timestamp:
- Jul 24, 2024, 4:23:34 PM (4 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_height.F90
r5116 r5117 13 13 14 14 ! Entree 15 integer, intent(in) :: ngrid,nlay16 real, intent(in), dimension(ngrid) :: linter,lintercong17 real, intent(in), dimension(ngrid,nlay+1) :: zlev15 INTEGER, INTENT(IN) :: ngrid,nlay 16 REAL, INTENT(IN), DIMENSION(ngrid) :: linter,lintercong 17 REAL, INTENT(IN), DIMENSION(ngrid,nlay+1) :: zlev 18 18 ! Sortie 19 real, intent(out), dimension(ngrid) :: wmax,zmax,zmax0,zmix,zcong20 integer, intent(out), dimension(ngrid) :: lmax,lcong19 REAL, INTENT(OUT), DIMENSION(ngrid) :: wmax,zmax,zmax0,zmix,zcong 20 INTEGER, INTENT(OUT), DIMENSION(ngrid) :: lmax,lcong 21 21 ! Les deux 22 integer, intent(inout), dimension(ngrid) :: lmix,lalim,lmin23 real, intent(inout), dimension(ngrid,nlay+1) :: zw222 INTEGER, INTENT(INOUT), DIMENSION(ngrid) :: lmix,lalim,lmin 23 REAL, INTENT(INOUT), DIMENSION(ngrid,nlay+1) :: zw2 24 24 25 25 ! local 26 real, dimension(ngrid) :: num,denom,zlevinter,zlevintercong27 integerig,l26 REAL, DIMENSION(ngrid) :: num,denom,zlevinter,zlevintercong 27 INTEGER ig,l 28 28 29 29 !calcul de la hauteur max du thermique … … 33 33 do ig=1,ngrid 34 34 do l=nlay,lalim(ig)+1,-1 35 if(zw2(ig,l)<=1.e-10) THEN35 IF (zw2(ig,l)<=1.e-10) THEN 36 36 lmax(ig)=l-1 37 37 endif … … 42 42 ! atteind le haut du modele ... 43 43 do ig=1,ngrid 44 if( zw2(ig,nlay) > 1.e-10 ) THEN44 IF ( zw2(ig,nlay) > 1.e-10 ) THEN 45 45 PRINT*,'WARNING !!!!! W2 thermiques non nul derniere couche ' 46 46 lmax(ig)=nlay … … 50 50 ! pas de thermique si couche 1 stable 51 51 do ig=1,ngrid 52 if(lmin(ig)>1) THEN52 IF (lmin(ig)>1) THEN 53 53 lmax(ig)=1 54 54 lmin(ig)=1 … … 64 64 do l=1,nlay 65 65 do ig=1,ngrid 66 if(l<=lmax(ig)) THEN67 if(zw2(ig,l)<0.)THEN66 IF (l<=lmax(ig)) THEN 67 IF (zw2(ig,l)<0.)THEN 68 68 PRINT*,'pb2 zw2<0' 69 69 endif … … 83 83 84 84 ! if (iflag_thermals_ed.ge.1) THEN 85 if(1==0) THEN85 IF (1==0) THEN 86 86 !CR:date de quand le calcul du zmax continu etait buggue 87 87 num(:)=0. … … 94 94 enddo 95 95 do ig=1,ngrid 96 if(denom(ig)>1.e-10) THEN96 IF (denom(ig)>1.e-10) THEN 97 97 zmax(ig)=2.*num(ig)/denom(ig) 98 98 zmax0(ig)=zmax(ig) … … 128 128 ! def de zmix continu (profil parabolique des vitesses) 129 129 do ig=1,ngrid 130 if(lmix(ig)>1) THEN130 IF (lmix(ig)>1) THEN 131 131 ! test 132 if(((zw2(ig,lmix(ig)-1)-zw2(ig,lmix(ig))) &132 IF (((zw2(ig,lmix(ig)-1)-zw2(ig,lmix(ig))) & 133 133 *((zlev(ig,lmix(ig)))-(zlev(ig,lmix(ig)+1))) & 134 134 -(zw2(ig,lmix(ig))-zw2(ig,lmix(ig)+1)) & … … 151 151 endif 152 152 !test 153 if((zmax(ig)-zmix(ig))<=0.) THEN153 IF ((zmax(ig)-zmix(ig))<=0.) THEN 154 154 zmix(ig)=0.9*zmax(ig) 155 155 ! PRINT*,'pb zmix>zmax' … … 160 160 do ig=1,ngrid 161 161 do l=1,nlay 162 if (zmix(ig)>=zlev(ig,l).and. &162 IF (zmix(ig)>=zlev(ig,l).AND. & 163 163 zmix(ig)<zlev(ig,l+1)) THEN 164 164 lmix(ig)=l
Note: See TracChangeset
for help on using the changeset viewer.