Ignore:
Timestamp:
Aug 2, 2024, 2:12:03 PM (3 months ago)
Author:
abarral
Message:

Add missing klon on strataer_emiss_mod.F90
Correct various missing explicit declarations
Replace tabs by spaces (tabs are not part of the fortran charset)
Continue cleaning modules
Removed unused arguments and variables

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/lmdz_thermcell_main.F90

    r5135 r5158  
    197197    !PRINT*,'thermcell_main debut'
    198198    !     WRITE(lunout,*)'WARNING thermcell_main f0=max(f0,1.e-2)'
    199     do ig = 1, ngrid
     199    DO ig = 1, ngrid
    200200      f0(ig) = max(f0(ig), 1.e-2)
    201201      zmax0(ig) = max(zmax0(ig), 40.)
     
    204204
    205205    IF (prt_level>=20) THEN
    206       do ig = 1, ngrid
     206      DO ig = 1, ngrid
    207207        PRINT*, 'th_main ig f0', ig, f0(ig)
    208208      enddo
     
    256256      ! contenu thermcell_env : enddo
    257257
    258       do l = 1, nlay
    259         do ig = 1, ngrid
     258      DO l = 1, nlay
     259        DO ig = 1, ngrid
    260260          zl(ig, l) = 0.
    261261          zu(ig, l) = puwind(ig, l)
     
    296296    !-----------------------------------------------------------------------
    297297
    298     do l = 2, nlay
     298    DO l = 2, nlay
    299299      zlev(:, l) = 0.5 * (pphi(:, l) + pphi(:, l - 1)) / RG
    300300    enddo
    301301    zlev(:, 1) = 0.
    302302    zlev(:, nlay + 1) = (2. * pphi(:, nlay) - pphi(:, nlay - 1)) / RG
    303     do l = 1, nlay
     303    DO l = 1, nlay
    304304      zlay(:, l) = pphi(:, l) / RG
    305305    enddo
    306     do l = 1, nlay
     306    DO l = 1, nlay
    307307      deltaz(:, l) = zlev(:, l + 1) - zlev(:, l)
    308308    enddo
     
    315315    IF (prt_level>=10) WRITE(lunout, *) 'WARNING thermcell_main rhobarz(:,1)=rho(:,1)'
    316316    rhobarz(:, 1) = rho(:, 1)
    317     do l = 2, nlay
     317    DO l = 2, nlay
    318318      rhobarz(:, l) = 0.5 * (rho(:, l) + rho(:, l - 1))
    319319    enddo
    320     do l = 1, nlay
     320    DO l = 1, nlay
    321321      masse(:, l) = (pplev(:, l) - pplev(:, l + 1)) / RG
    322322    enddo
     
    457457    ! Le probleme vient du fait que linter et lmix sont souvent egaux a 1.
    458458    wmax_tmp = 0.
    459     do  l = 1, nlay
     459    DO  l = 1, nlay
    460460      wmax_tmp(:) = max(wmax_tmp(:), zw2(:, l))
    461461    enddo
     
    562562    ! Calcul de la fraction de l'ascendance
    563563    !------------------------------------------------------------------
    564     do ig = 1, ngrid
     564    DO ig = 1, ngrid
    565565      fraca(ig, 1) = 0.
    566566      fraca(ig, nlay + 1) = 0.
    567567    enddo
    568     do l = 2, nlay
    569       do ig = 1, ngrid
     568    DO l = 2, nlay
     569      DO ig = 1, ngrid
    570570        IF (zw2(ig, l)>1.e-10) THEN
    571571          fraca(ig, l) = fm(ig, l) / (rhobarz(ig, l) * zw2(ig, l))
     
    592592
    593593      ! Temperature potentielle liquide effectivement mélangée par les thermiques
    594       do ll = 1, nlay
    595         do ig = 1, ngrid
     594      DO ll = 1, nlay
     595        DO ig = 1, ngrid
    596596          zthl(ig, ll) = ptemp(ig, ll) / zpspsk(ig, ll)
    597597        enddo
     
    600600              zthl, zdthladj, zta, lev_out)
    601601
    602       do ll = 1, nlay
    603         do ig = 1, ngrid
     602      DO ll = 1, nlay
     603        DO ig = 1, ngrid
    604604          z_o(ig, ll) = p_o(ig, ll)
    605605        enddo
     
    610610#ifdef ISO
    611611        ! C Risi: on utilise directement la meme routine
    612         do ixt=1,ntiso
    613           do ll=1,nlay
     612        DO ixt=1,ntiso
     613          DO ll=1,nlay
    614614            DO ig=1,ngrid
    615615                xtpo_tmp(ig,ll)=xtpo(ixt,ig,ll)
     
    619619          CALL thermcell_dq(ngrid,nlay,dqimpl,ptimestep,fm0,entr0,masse,  &
    620620                     xtpo_tmp,xtpdoadj_tmp,xtzo_tmp,lev_out)
    621           do ll=1,nlay
     621          DO ll=1,nlay
    622622            DO ig=1,ngrid
    623623                xtpdoadj(ixt,ig,ll)=xtpdoadj_tmp(ig,ll)
     
    674674
    675675    !     PRINT*,'13 OK convect8'
    676     do l = 1, nlay
    677       do ig = 1, ngrid
     676    DO l = 1, nlay
     677      DO ig = 1, ngrid
    678678        pdtadj(ig, l) = zdthladj(ig, l) * zpspsk(ig, l)
    679679      enddo
     
    690690      ! calcul du niveau de condensation
    691691      ! initialisation
    692       do ig = 1, ngrid
     692      DO ig = 1, ngrid
    693693        nivcon(ig) = 0
    694694        zcon(ig) = 0.
    695695      enddo
    696696      !nouveau calcul
    697       do ig = 1, ngrid
     697      DO ig = 1, ngrid
    698698        ! WARNING !!! verifier que c'est bien ztemp_env qu'on veut là
    699699        CHI = ztemp_env(ig, 1) / (1669.0 - 122.0 * z_o(ig, 1) / zqsat(ig, 1) - ztemp_env(ig, 1))
     
    701701      enddo
    702702      !IM   do k=1,nlay
    703       do k = 1, nlay - 1
    704         do ig = 1, ngrid
     703      DO k = 1, nlay - 1
     704        DO ig = 1, ngrid
    705705          IF ((pcon(ig)<=pplay(ig, k))  &
    706706                  .AND.(pcon(ig)>pplay(ig, k + 1))) THEN
     
    711711      !IM
    712712      ierr = 0
    713       do ig = 1, ngrid
     713      DO ig = 1, ngrid
    714714        IF (pcon(ig)<=pplay(ig, nlay)) THEN
    715715          zcon2(ig) = zlay(ig, nlay) - (pcon(ig) - pplay(ig, nlay)) / (RG * rho(ig, nlay)) / 100.
     
    723723
    724724      IF (prt_level>=1) PRINT*, '14b OK convect8'
    725       do k = nlay, 1, -1
    726         do ig = 1, ngrid
     725      DO k = nlay, 1, -1
     726        DO ig = 1, ngrid
    727727          IF (zqla(ig, k)>1e-10) THEN
    728728            nivcon(ig) = k
     
    734734      !calcul des moments
    735735      !initialisation
    736       do l = 1, nlay
    737         do ig = 1, ngrid
     736      DO l = 1, nlay
     737        DO ig = 1, ngrid
    738738          q2(ig, l) = 0.
    739739          wth2(ig, l) = 0.
     
    746746      IF (prt_level>=10)WRITE(lunout, *)                                &
    747747              'WARNING thermcell_main wth2=0. si zw2 > 1.e-10'
    748       do l = 1, nlay
    749         do ig = 1, ngrid
     748      DO l = 1, nlay
     749        DO ig = 1, ngrid
    750750          zf = fraca(ig, l)
    751751          zf2 = zf / (1. - zf)
     
    765765      enddo
    766766      !calcul des flux: q, thetal et thetav
    767       do l = 1, nlay
    768         do ig = 1, ngrid
     767      DO l = 1, nlay
     768        DO ig = 1, ngrid
    769769          wq(ig, l) = fraca(ig, l) * zw2(ig, l) * (zqta(ig, l) * 1000. - p_o(ig, l) * 1000.)
    770770          wthl(ig, l) = fraca(ig, l) * zw2(ig, l) * (ztla(ig, l) - zthl(ig, l))
     
    779779      ratqsdiff(:, :) = 0.
    780780
    781       do l = 1, nlay
    782         do ig = 1, ngrid
     781      DO l = 1, nlay
     782        DO ig = 1, ngrid
    783783          IF (l<=lalim(ig)) THEN
    784784            var = var + alim_star(ig, l) * zqta(ig, l) * 1000.
     
    789789      IF (prt_level>=1) PRINT*, '14f OK convect8'
    790790
    791       do l = 1, nlay
    792         do ig = 1, ngrid
     791      DO l = 1, nlay
     792        DO ig = 1, ngrid
    793793          IF (l<=lalim(ig)) THEN
    794794            zf = fraca(ig, l)
     
    800800
    801801      IF (prt_level>=1) PRINT*, '14g OK convect8'
    802       do l = 1, nlay
    803         do ig = 1, ngrid
     802      DO l = 1, nlay
     803        DO ig = 1, ngrid
    804804          ratqsdiff(ig, l) = sqrt(vardiff) / (p_o(ig, l) * 1000.)
    805805        enddo
     
    837837
    838838    !  test sur la hauteur des thermiques ...
    839     do i = 1, ngrid
     839    DO i = 1, ngrid
    840840      !IMtemp           if (pplay(i,long(i)).lt.seuil*pplev(i,1)) THEN
    841841      IF (prt_level>=10) THEN
    842842        PRINT*, 'WARNING ', comment, ' au point ', i, ' K= ', long(i)
    843843        PRINT*, '  K  P(MB)  THV(K)     Qenv(g/kg)THVA        QLA(g/kg)   F*        W2'
    844         do k = 1, nlay
     844        DO k = 1, nlay
    845845          WRITE(6, '(i3,7f10.3)') k, pplay(i, k), ztv(i, k), 1000 * p_o(i, k), ztva(i, k), 1000 * zqla(i, k), f_star(i, k), zw2(i, k)
    846846        enddo
     
    896896
    897897    !   calcul du detrainement
    898     do k = 1, nlay
     898    DO k = 1, nlay
    899899      detr0(:, k) = fm0(:, k) - fm0(:, k + 1) + entr0(:, k)
    900900      masse0(:, k) = (pplev(:, k) - pplev(:, k + 1)) / RG
     
    907907    detr(:, 1) = 0.5 * detr0(:, 1)
    908908    fm(:, 1) = 0.
    909     do k = 1, nlay - 1
     909    DO k = 1, nlay - 1
    910910      masse(:, k + 1) = 0.5 * (masse0(:, k) + masse0(:, k + 1))
    911911      entr(:, k + 1) = 0.5 * (entr0(:, k) + entr0(:, k + 1))
     
    917917    q(:, :) = therm_tke_max(:, :)
    918918    !!! nrlmd le 16/09/2010
    919     do ig = 1, ngrid
     919    DO ig = 1, ngrid
    920920      qa(ig, 1) = q(ig, 1)
    921921    enddo
     
    923923
    924924    IF (1==1) THEN
    925       do k = 2, nlay
    926         do ig = 1, ngrid
     925      DO k = 2, nlay
     926        DO ig = 1, ngrid
    927927          IF ((fm(ig, k + 1) + detr(ig, k)) * ptimestep>  &
    928928                  1.e-5 * masse(ig, k)) THEN
     
    943943      ! Calcul du flux subsident
    944944
    945       do k = 2, nlay
    946         do ig = 1, ngrid
     945      DO k = 2, nlay
     946        DO ig = 1, ngrid
    947947          wqd(ig, k) = fm(ig, k) * q(ig, k)
    948948          IF (wqd(ig, k)<0.) THEN
     
    951951        enddo
    952952      enddo
    953       do ig = 1, ngrid
     953      DO ig = 1, ngrid
    954954        wqd(ig, 1) = 0.
    955955        wqd(ig, nlay + 1) = 0.
     
    957957
    958958      ! Calcul des tendances
    959       do k = 1, nlay
    960         do ig = 1, ngrid
     959      DO k = 1, nlay
     960        DO ig = 1, ngrid
    961961          q(ig, k) = q(ig, k) + (detr(ig, k) * qa(ig, k) - entr(ig, k) * q(ig, k)  &
    962962                  - wqd(ig, k) + wqd(ig, k + 1))  &
Note: See TracChangeset for help on using the changeset viewer.