Ignore:
Timestamp:
Jul 24, 2024, 2:54:37 PM (4 months ago)
Author:
abarral
Message:

rename modules properly lmdz_*
move ismin, ismax, minmax into new lmdz_libmath.f90
(lint) uppercase fortran keywords

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_plume_6A.f90

    r5105 r5116  
    102102
    103103    ! Initialisations des variables r?elles
    104     if (1==1) then
     104    if (1==1) THEN
    105105      ztva(:, :) = ztv(:, :)
    106106      ztva_est(:, :) = ztva(:, :)
     
    173173      ! Le panache va prendre au debut les caracteristiques de l'air contenu
    174174      ! dans cette couche.
    175       if (active(ig)) then
     175      if (active(ig)) THEN
    176176        ztla(ig, 1) = zthl(ig, 1)
    177177        zqta(ig, 1) = po(ig, 1)
     
    217217      do ig = 1, ngrid
    218218        !       PRINT*,'active',active(ig),ig,l
    219         if(active(ig)) then
     219        IF(active(ig)) THEN
    220220          zqla_est(ig, l) = max(0., zqta(ig, l - 1) - zqsat(ig))
    221221          ztva_est(ig, l) = ztla(ig, l - 1) * zpspsk(ig, l) + RLvCp * zqla_est(ig, l)
     
    247247
    248248          !--------------------------------------------------
    249           if (iflag_thermals_ed<8) then
     249          if (iflag_thermals_ed<8) THEN
    250250            !--------------------------------------------------
    251251            !AJ052014: J'ai remplac?? la boucle do par un do while
     
    284284            ztv2 = atv2 * zlt + btv2
    285285
    286             if (ztv(ig, lt)>ztv1.and.ztv(ig, lt)<ztv2) then
    287 
     286            if (ztv(ig, lt)>ztv1.and.ztv(ig, lt)<ztv2) THEN
    288287              !--------------------------------------------------
    289288              !AJ052014: D??calage de zinv qui est entre le haut
     
    293292              zinv = zltdwn + zdz3 * factinv
    294293
    295               if (zlmeldwn>=zinv) then
     294              if (zlmeldwn>=zinv) THEN
    296295                ztv_est(ig, l) = atv2 * zlmel + btv2
    297296                zbuoyjam(ig, l) = fact_shell * RG * (ztva_est(ig, l) - ztv_est(ig, l)) / ztv_est(ig, l) &
    298297                        + (1. - fact_shell) * zbuoy(ig, l)
    299               elseif (zlmelup>=zinv) then
     298              elseif (zlmelup>=zinv) THEN
    300299                ztv_est2 = atv2 * 0.5 * (zlmelup + zinv) + btv2
    301300                ztv_est1 = atv1 * 0.5 * (zinv + zlmeldwn) + btv1
     
    312311              endif
    313312
    314             else ! if (ztv(ig,lt).gt.ztv1.and.ztv(ig,lt).lt.ztv2) then
    315 
    316               if (zlmeldwn>zltdwn) then
     313            else ! if (ztv(ig,lt).gt.ztv1.and.ztv(ig,lt).lt.ztv2) THEN
     314              if (zlmeldwn>zltdwn) THEN
    317315                zbuoyjam(ig, l) = fact_shell * RG * ((ztva_est(ig, l) - &
    318316                        ztv(ig, lt)) / ztv(ig, lt)) + (1. - fact_shell) * zbuoy(ig, l)
     
    330328              !    &          po(ig,lt))/po(ig,lt)+((zdz2-lmel)/zdz3)*(zqta(ig,l-1)- &
    331329              !     &          po(ig,lt-1))/po(ig,lt-1))
    332             endif ! if (ztv(ig,lt).gt.ztv1.and.ztv(ig,lt).lt.ztv2) then
    333 
    334           else  !   if (iflag_thermals_ed.lt.8) then
     330            endif ! if (ztv(ig,lt).gt.ztv1.and.ztv(ig,lt).lt.ztv2) THEN
     331          else  !   if (iflag_thermals_ed.lt.8) THEN
    335332            lt = l + 1
    336333            zlt = zlev(ig, lt)
     
    349346                    ztv(ig, lt)) / ztv(ig, lt) + (1. - coefzlmel) * (ztva_est(ig, l) - &
    350347                    ztv(ig, lt - 1)) / ztv(ig, lt - 1)) + 0. * zbuoy(ig, l)
    351           endif !   if (iflag_thermals_ed.lt.8) then
    352 
     348          endif !   if (iflag_thermals_ed.lt.8) THEN
    353349          !------------------------------------------------
    354350          !AJAM:nouveau calcul de w?
     
    377373          !AJ052014: J'ai remplac? w_est(ig,l) par zw2(ig,l)
    378374          !--------------------------------------------------
    379           if (iflag_thermals_ed==8) then
     375          if (iflag_thermals_ed==8) THEN
    380376            ! Ancienne version
    381377            !             w_est(ig,l+1)=Max(0.0001,(zdz/zdzbis)*(exp(-zw2fact)* &
     
    408404          endif
    409405
    410           if (iflag_thermals_ed<6) then
     406          if (iflag_thermals_ed<6) THEN
    411407            zalpha = f0(ig) * f_star(ig, l) / sqrt(w_est(ig, l + 1)) / rhobarz(ig, l)
    412408            !              fact_epsilon=0.0005/(zalpha+0.025)**0.5
     
    431427          !--------------------------------------------------
    432428
    433           !             if (w_est(ig,l+1).lt.0.) then
     429          !             if (w_est(ig,l+1).lt.0.) THEN
    434430          !               w_est(ig,l+1)=zw2(ig,l)
    435431          !                w_est(ig,l+1)=0.0001
     
    445441
    446442      do ig = 1, ngrid
    447         if (active(ig)) then
    448 
     443        if (active(ig)) THEN
    449444          !          zw2m=max(0.5*(w_est(ig,l)+w_est(ig,l+1)),0.1)
    450445          zw2m = w_est(ig, l + 1)
     
    476471          !          entrbis=entr_star(ig,l)
    477472
    478           if (iflag_thermals_ed<6) then
     473          if (iflag_thermals_ed<6) THEN
    479474            fact_epsilon = 0.0002 / (zalpha + 0.1)
    480475          endif
     
    513508          ! En dessous de lalim, on prend le max de alim_star et entr_star pour
    514509          ! alim_star et 0 sinon
    515           if (l<lalim(ig)) then
     510          if (l<lalim(ig)) THEN
    516511            alim_star(ig, l) = max(alim_star(ig, l), entr_star(ig, l))
    517512            entr_star(ig, l) = 0.
    518513          endif
    519           !        if (l.lt.lalim(ig).and.alim_star(ig,l)>alim_star(ig,l-1)) then
     514          !        if (l.lt.lalim(ig).and.alim_star(ig,l)>alim_star(ig,l-1)) THEN
    520515          !          alim_star(ig,l)=entrbis
    521516          !        endif
     
    536531      activetmp(:) = active(:) .and. f_star(:, l + 1)>1.e-10
    537532      do ig = 1, ngrid
    538         if (activetmp(ig)) then
     533        if (activetmp(ig)) THEN
    539534          Zsat = .FALSE.
    540535          ztla(ig, l) = (f_star(ig, l) * ztla(ig, l - 1) + &
     
    551546      CALL thermcell_qsat(ngrid, activetmp, pplev(:, l), ztemp, zqta(:, l), zqsatth(:, l))
    552547      do ig = 1, ngrid
    553         if (activetmp(ig)) then
     548        if (activetmp(ig)) THEN
    554549          ! on ecrit de maniere conservative (sat ou non)
    555550          !          T = Tl +Lv/Cp ql
     
    582577          !    &                     (zw2(ig,l)-zdw2)+zdw2)+(zdzbis-zdz)/zdzbis* &
    583578          !    &                     (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2))
    584           if (iflag_thermals_ed==8) then
     579          if (iflag_thermals_ed==8) THEN
    585580            zw2(ig, l + 1) = Max(0.0001, exp(-zw2fact) * (zw2(ig, l) - zdw2) + zdw2)
    586581          else
     
    591586          !    &                     (exp(-zw2factbis)*(zw2(ig,l-1)-zdw2bis)+zdw2bis))
    592587
    593           if (iflag_thermals_ed<6) then
     588          if (iflag_thermals_ed<6) THEN
    594589            zalpha = f0(ig) * f_star(ig, l) / sqrt(zw2(ig, l + 1)) / rhobarz(ig, l)
    595590            !           fact_epsilon=0.0005/(zalpha+0.025)**0.5
     
    620615      nbpb = 0
    621616      do ig = 1, ngrid
    622         if (zw2(ig, l + 1)>0. .and. zw2(ig, l + 1)<1.e-10) then
     617        if (zw2(ig, l + 1)>0. .and. zw2(ig, l + 1)<1.e-10) THEN
    623618          !               stop 'On tombe sur le cas particulier de thermcell_dry'
    624619          !               PRINT*,'On tombe sur le cas particulier de thermcell_plume'
     
    628623        endif
    629624
    630         if (zw2(ig, l + 1)<0.) then
     625        if (zw2(ig, l + 1)<0.) THEN
    631626          linter(ig) = (l * (zw2(ig, l + 1) - zw2(ig, l))  &
    632627                  - zw2(ig, l)) / (zw2(ig, l + 1) - zw2(ig, l))
    633628          zw2(ig, l + 1) = 0.
    634629          !+CR:04/05/12:correction calcul linter pour calcul de zmax continu
    635         elseif (f_star(ig, l + 1)<0.) then
     630        elseif (f_star(ig, l + 1)<0.) THEN
    636631          linter(ig) = (l * (f_star(ig, l + 1) - f_star(ig, l))  &
    637632                  - f_star(ig, l)) / (f_star(ig, l + 1) - f_star(ig, l))
     
    642637        wa_moy(ig, l + 1) = sqrt(zw2(ig, l + 1))
    643638
    644         if (wa_moy(ig, l + 1)>wmaxa(ig)) then
     639        if (wa_moy(ig, l + 1)>wmaxa(ig)) THEN
    645640          !   lmix est le niveau de la couche ou w (wa_moy) est maximum
    646641          !on rajoute le calcul de lmix_bis
    647           if (zqla(ig, l)<1.e-10) then
     642          if (zqla(ig, l)<1.e-10) THEN
    648643            lmix_bis(ig) = l + 1
    649644          endif
     
    653648      enddo
    654649
    655       if (nbpb>0) then
     650      if (nbpb>0) THEN
    656651        PRINT*, 'WARNING on tombe ', nbpb, ' x sur un pb pour l=', l, ' dans thermcell_plume'
    657652      endif
     
    772767
    773768    ! Initialisations des variables reeles
    774     if (1==1) then
     769    if (1==1) THEN
    775770      ztva(:, :) = ztv(:, :)
    776771      ztva_est(:, :) = ztva(:, :)
     
    824819    do l = 1, nlay - 1
    825820      do ig = 1, ngrid
    826         if (ztv(ig, l)> ztv(ig, l + 1) .and. ztv(ig, 1)>=ztv(ig, l)) then
     821        if (ztv(ig, l)> ztv(ig, l + 1) .and. ztv(ig, 1)>=ztv(ig, l)) THEN
    827822          alim_star(ig, l) = MAX((ztv(ig, l) - ztv(ig, l + 1)), 0.)  &
    828823                  * sqrt(zlev(ig, l + 1))
     
    834829    do l = 1, nlay
    835830      do ig = 1, ngrid
    836         if (alim_star_tot(ig) > 1.e-10) then
     831        if (alim_star_tot(ig) > 1.e-10) THEN
    837832          alim_star(ig, l) = alim_star(ig, l) / alim_star_tot(ig)
    838833        endif
     
    853848      ! Le panache va prendre au debut les caracteristiques de l'air contenu
    854849      ! dans cette couche.
    855       if (active(ig)) then
     850      if (active(ig)) THEN
    856851        ztla(ig, 1) = zthl(ig, 1)
    857852        zqta(ig, 1) = po(ig, 1)
     
    898893      do ig = 1, ngrid
    899894        !       PRINT*,'active',active(ig),ig,l
    900         if(active(ig)) then
     895        IF(active(ig)) THEN
    901896          zqla_est(ig, l) = max(0., zqta(ig, l - 1) - zqsat(ig))
    902897          ztva_est(ig, l) = ztla(ig, l - 1) * zpspsk(ig, l) + RLvCp * zqla_est(ig, l)
     
    916911          w_est(ig, l + 1) = Max(0.0001, exp(-zw2fact) * (w_est(ig, l) - zdw2) + zdw2)
    917912
    918           if (w_est(ig, l + 1)<0.) then
     913          if (w_est(ig, l + 1)<0.) THEN
    919914            w_est(ig, l + 1) = zw2(ig, l)
    920915          endif
     
    928923
    929924      do ig = 1, ngrid
    930         if (active(ig)) then
    931 
     925        if (active(ig)) THEN
    932926          zw2m = max(0.5 * (w_est(ig, l) + w_est(ig, l + 1)), 0.1)
    933927          zw2m = w_est(ig, l + 1)
     
    948942          ! En dessous de lalim, on prend le max de alim_star et entr_star pour
    949943          ! alim_star et 0 sinon
    950           if (l<lalim(ig)) then
     944          if (l<lalim(ig)) THEN
    951945            alim_star(ig, l) = max(alim_star(ig, l), entr_star(ig, l))
    952946            entr_star(ig, l) = 0.
     
    966960      activetmp(:) = active(:) .and. f_star(:, l + 1)>1.e-10
    967961      do ig = 1, ngrid
    968         if (activetmp(ig)) then
     962        if (activetmp(ig)) THEN
    969963          Zsat = .FALSE.
    970964          ztla(ig, l) = (f_star(ig, l) * ztla(ig, l - 1) + &
     
    982976
    983977      do ig = 1, ngrid
    984         if (activetmp(ig)) then
     978        if (activetmp(ig)) THEN
    985979          ! on ecrit de maniere conservative (sat ou non)
    986980          !          T = Tl +Lv/Cp ql
     
    10101004      nbpb = 0
    10111005      do ig = 1, ngrid
    1012         if (zw2(ig, l + 1)>0. .and. zw2(ig, l + 1)<1.e-10) then
     1006        if (zw2(ig, l + 1)>0. .and. zw2(ig, l + 1)<1.e-10) THEN
    10131007          !               stop 'On tombe sur le cas particulier de thermcell_dry'
    10141008          !               PRINT*,'On tombe sur le cas particulier de thermcell_plume'
     
    10181012        endif
    10191013
    1020         if (zw2(ig, l + 1)<0.) then
     1014        if (zw2(ig, l + 1)<0.) THEN
    10211015          linter(ig) = (l * (zw2(ig, l + 1) - zw2(ig, l))  &
    10221016                  - zw2(ig, l)) / (zw2(ig, l + 1) - zw2(ig, l))
    10231017          zw2(ig, l + 1) = 0.
    1024         elseif (f_star(ig, l + 1)<0.) then
     1018        elseif (f_star(ig, l + 1)<0.) THEN
    10251019          linter(ig) = (l * (f_star(ig, l + 1) - f_star(ig, l))  &
    10261020                  - f_star(ig, l)) / (f_star(ig, l + 1) - f_star(ig, l))
     
    10311025        wa_moy(ig, l + 1) = sqrt(zw2(ig, l + 1))
    10321026
    1033         if (wa_moy(ig, l + 1)>wmaxa(ig)) then
     1027        if (wa_moy(ig, l + 1)>wmaxa(ig)) THEN
    10341028          !   lmix est le niveau de la couche ou w (wa_moy) est maximum
    10351029          !on rajoute le calcul de lmix_bis
    1036           if (zqla(ig, l)<1.e-10) then
     1030          if (zqla(ig, l)<1.e-10) THEN
    10371031            lmix_bis(ig) = l + 1
    10381032          endif
     
    10421036      enddo
    10431037
    1044       if (nbpb>0) then
     1038      if (nbpb>0) THEN
    10451039        PRINT*, 'WARNING on tombe ', nbpb, ' x sur un pb pour l=', l, ' dans thermcell_plume'
    10461040      endif
Note: See TracChangeset for help on using the changeset viewer.