Ignore:
Timestamp:
Dec 12, 2025, 5:26:10 PM (3 days ago)
Author:
Sebastien Nguyen
Message:

Changes to compile LMDZ-OR-ISO and wrtie output variables Rsol isotopes soil ratio) xtevap xtcoastal xtrivflu. Changes from CA and ND to write output variables xtprw (precipitatble water) uxt and vxt (meridional and zonal advected humidity) Rlandice and xtsnow.

Location:
LMDZ6/trunk/libf/dynphy_lonlat
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/dynphy_lonlat/calfis.f90

    r5481 r5927  
    44!
    55!
    6 SUBROUTINE calfis(lafin, &
    7         jD_cur, jH_cur, &
    8         pucov, &
    9         pvcov, &
    10         pteta, &
    11         pq, &
    12         pmasse, &
    13         pps, &
    14         pp, &
    15         ppk, &
    16         pphis, &
    17         pphi, &
    18         pducov, &
    19         pdvcov, &
    20         pdteta, &
    21         pdq, &
    22         flxw, &
    23         pdufi, &
    24         pdvfi, &
    25         pdhfi, &
    26         pdqfi, &
    27         pdpsfi)
     6SUBROUTINE calfis(lafin,          &
     7                  jD_cur, jH_cur, &
     8                  pucov,          &
     9                  pvcov,          &
     10                  pteta,          &
     11                  pq,            &
     12                  pmasse,        &
     13                  pps,            &
     14                  pp,            &
     15                  ppk,            &
     16                  pphis,          &
     17                  pphi,          &
     18                  pducov,        &
     19                  pdvcov,        &
     20                  pdteta,        &
     21                  pdq,            &
     22                  flxw,          &
     23                  pdufi,          &
     24                  pdvfi,          &
     25                  pdhfi,          &
     26                  pdqfi,          &
     27                  pdpsfi)
    2828  !
    2929  !    Auteur :  P. Le Van, F. Hourdin
     
    177177    debut = .TRUE.
    178178    IF (ngridmx.NE.2+(jjm-1)*iim) THEN
    179      write(lunout,*) 'STOP dans calfis'
    180      write(lunout,*) &
     179      write(lunout,*) 'STOP dans calfis'
     180      write(lunout,*) &
    181181           'La dimension ngridmx doit etre egale a 2 + (jjm-1)*iim'
    182      write(lunout,*) '  ngridmx  jjm   iim   '
    183      write(lunout,*) ngridmx,jjm,iim
    184      call abort_gcm("calfis", "", 1)
     182      write(lunout,*) '  ngridmx  jjm   iim   '
     183      write(lunout,*) ngridmx,jjm,iim
     184      call abort_gcm("calfis", "", 1)
    185185    ENDIF
    186186  ELSE
     
    368368    do i=1,iim
    369369      do j=1,jjm
    370         zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l) &
    371               + pucov(i,j+1,l) - pucov(i,j,l)) &
    372               / (cu(i,j)+cu(i,j+1)) &
    373               / (cv(i+1,j)+cv(i,j)) *4
     370        zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l)  &
     371                     + pucov(i,j+1,l) - pucov(i,j,l)) &
     372                     / (cu(i,j)+cu(i,j+1)) &
     373                     / (cv(i+1,j)+cv(i,j)) *4
    374374      enddo
    375375    enddo
     
    481481   ! if (planet_type=="earth") then
    482482    CALL call_physiq(ngridmx,llm,nqtot,tracers(:)%name, &
    483           debut_split,lafin_split, &
    484           jD_cur,jH_cur_split,zdt_split, &
    485           zplev,zplay, &
    486           zpk,zphi,zphis, &
    487           presnivs, &
    488           zufi,zvfi,zrfi,ztfi,zqfi, &
    489           flxwfi,pducov, &
    490           zdufi,zdvfi,zdtfi,zdqfi,zdpsrf)
     483                     debut_split,lafin_split, &
     484                     jD_cur,jH_cur_split,zdt_split, &
     485                     zplev,zplay, &
     486                     zpk,zphi,zphis, &
     487                     presnivs, &
     488                     zufi,zvfi,zrfi,ztfi,zqfi, &
     489                     flxwfi,pducov, &
     490                     zdufi,zdvfi,zdtfi,zdqfi,zdpsrf)
    491491  !
    492492  !  else if ( planet_type=="generic" ) then
     
    539539
    540540
    541 500   CONTINUE
     541!!SN 500   CONTINUE !not used
    542542
    543543  !-----------------------------------------------------------------------
     
    678678  !-----------------------------------------------------------------------
    679679
    680 700   CONTINUE
     680!! SN 700   CONTINUE !not used
    681681
    682682  firstcal = .FALSE.
  • LMDZ6/trunk/libf/dynphy_lonlat/calfis_loc.F90

    r5481 r5927  
    5454  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    5555  USE paramet_mod_h
     56
    5657  IMPLICIT NONE
     58
    5759  !=======================================================================
    5860  !
     
    184186  ! Introduction du splitting (FH)
    185187  ! Question pour Yann :
    186   ! J'ai �t� surpris au d�but que les tableaux zufi_omp, zdufi_omp n'co soitent
    187   ! en SAVE. Je crois comprendre que c'est parce que tu voulais qu'il
    188   ! soit allocatable (plutot par exemple que de passer une dimension
    189   ! dpendant du process en argument des routines) et que, du coup,
    190   ! le SAVE �vite d'avoir � refaire l'allocation � chaque appel.
     188  ! J'ai ete surpris au debut que les tableaux zufi_omp, zdufi_omp n'co soient
     189  ! en SAVE. Je crois comprendre que c'est parce que tu voulais qu'ils
     190  ! soient allocatable (plutot par exemple que de passer une dimension
     191  ! dependant du process en argument des routines) et que, du coup,
     192  ! le SAVE evite d'avoir a refaire l'allocation a chaque appel.
    191193  ! Tu confirmes ?
    192   ! J'ai suivi le mme principe pour les zdufic_omp
     194  ! J'ai suivi le meme principe pour les zdufic_omp
    193195  ! Mais c'est surement bien que tu controles.
    194196  !
     
    253255    ENDIF
    254256!$OMP MASTER
    255   ALLOCATE(zpsrf(klon))
    256   ALLOCATE(zplev(klon,llm+1),zplay(klon,llm))
    257   ALLOCATE(zphi(klon,llm),zphis(klon))
    258   ALLOCATE(zufi(klon,llm), zvfi(klon,llm),zrfi(klon,llm))
    259   ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqtot))
    260   ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm))
    261   ALLOCATE(pcvgt(klon,llm), pcvgq(klon,llm,2))
    262   ALLOCATE(zdufi(klon,llm),zdvfi(klon,llm))
    263   ALLOCATE(zdtfi(klon,llm),zdqfi(klon,llm,nqtot))
    264   ALLOCATE(zdpsrf(klon))
    265   ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
    266   ALLOCATE(flxwfi(klon,llm))
    267   ALLOCATE(zpk(klon,llm))
     257    ALLOCATE(zpsrf(klon))
     258    ALLOCATE(zplev(klon,llm+1),zplay(klon,llm))
     259    ALLOCATE(zphi(klon,llm),zphis(klon))
     260    ALLOCATE(zufi(klon,llm), zvfi(klon,llm),zrfi(klon,llm))
     261    ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqtot))
     262    ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm))
     263    ALLOCATE(pcvgt(klon,llm), pcvgq(klon,llm,2))
     264    ALLOCATE(zdufi(klon,llm),zdvfi(klon,llm))
     265    ALLOCATE(zdtfi(klon,llm),zdqfi(klon,llm,nqtot))
     266    ALLOCATE(zdpsrf(klon))
     267    ALLOCATE(zdufi2(klon+iim,llm),zdvfi2(klon+iim,llm))
     268    ALLOCATE(flxwfi(klon,llm))
     269    ALLOCATE(zpk(klon,llm))
    268270!$OMP END MASTER
    269271!$OMP BARRIER
    270272  ELSE
    271       debut = .FALSE.
     273    debut = .FALSE.
    272274  ENDIF
    273275
     
    282284
    283285!$OMP MASTER
    284   call start_timer(timer_physic)
     286  CALL start_timer(timer_physic)
    285287!$OMP END MASTER
    286288
     
    288290  !CDIR ON_ADB(index_i)
    289291  !CDIR ON_ADB(index_j)
    290   do ig0=1,klon
     292  DO ig0=1,klon
    291293    i=index_i(ig0)
    292294    j=index_j(ig0)
    293295    zpsrf(ig0)=pps(i,j)
    294   enddo
     296  ENDDO
    295297!$OMP END MASTER
    296298
     
    312314  !CDIR ON_ADB(index_i)
    313315  !CDIR ON_ADB(index_j)
    314     do ig0=1,klon
     316    DO ig0=1,klon
    315317      i=index_i(ig0)
    316318      j=index_j(ig0)
    317319      zplev( ig0,l ) = pp(i,j,l)
    318     enddo
     320    ENDDO
    319321  ENDDO
    320322!$OMP END DO NOWAIT
     
    322324!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    323325  DO l=1,llm
    324     do ig0=1,klon
     326    DO ig0=1,klon
    325327      i=index_i(ig0)
    326328      j=index_j(ig0)
    327329      zpk(ig0,l)=ppk(i,j,l)
    328     enddo
     330    ENDDO
    329331  ENDDO
    330332!$OMP END DO NOWAIT
     
    339341  !CDIR ON_ADB(index_i)
    340342  !CDIR ON_ADB(index_j)
    341     do ig0=1,klon
     343    DO ig0=1,klon
    342344      i=index_i(ig0)
    343345      j=index_j(ig0)
     
    345347      zplay(ig0,l)   = preff * pksurcp ** unskap
    346348      ztfi(ig0,l)    = pteta(i,j,l)  * pksurcp
    347     enddo
     349    ENDDO
    348350
    349351  ENDDO
     
    362364  !CDIR ON_ADB(index_i)
    363365  !CDIR ON_ADB(index_j)
    364        do ig0=1,klon
     366       DO ig0=1,klon
    365367         i=index_i(ig0)
    366368         j=index_j(ig0)
    367369         zqfi(ig0,l,itr)  = pq(i,j,l,iq)
    368        enddo
     370       ENDDO
    369371     ENDDO
    370372!$OMP END DO NOWAIT
     
    376378
    377379!$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
    378      DO l=1,llm
    379   !CDIR ON_ADB(index_i)
    380   !CDIR ON_ADB(index_j)
    381        do ig0=1,klon
    382          i=index_i(ig0)
    383          j=index_j(ig0)
    384          zphi(ig0,l)  = pphi(i,j,l)
    385        enddo
     380  DO l=1,llm
     381  !CDIR ON_ADB(index_i)
     382  !CDIR ON_ADB(index_j)
     383     DO ig0=1,klon
     384       i=index_i(ig0)
     385       j=index_j(ig0)
     386       zphi(ig0,l)  = pphi(i,j,l)
    386387     ENDDO
     388  ENDDO
    387389!$OMP END DO NOWAIT
    388390
     
    392394  !CDIR ON_ADB(index_i)
    393395  !CDIR ON_ADB(index_j)
    394        do ig0=1,klon
    395          i=index_i(ig0)
    396          j=index_j(ig0)
    397          zphis(ig0)  = pphis(i,j)
    398        enddo
     396  DO ig0=1,klon
     397    i=index_i(ig0)
     398    j=index_j(ig0)
     399    zphis(ig0)  = pphis(i,j)
     400  ENDDO
    399401!$OMP END MASTER
    400402
     
    458460      do j=jjb,jje
    459461        zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l) &
    460               + pucov(i,j+1,l) - pucov(i,j,l)) &
    461               / (cu(i,j)+cu(i,j+1)) &
    462               / (cv(i+1,j)+cv(i,j)) *4
     462                     + pucov(i,j+1,l) - pucov(i,j,l)) &
     463                     / (cu(i,j)+cu(i,j+1)) &
     464                     / (cv(i+1,j)+cv(i,j)) *4
    463465      enddo
    464466    enddo
     
    477479      j=index_j(ig0)
    478480      zvfi(ig0,l)= 0.5 *(  pvcov(i,j-1,l)/cv(i,j-1) &
    479             + pvcov(i,j,l)/cv(i,j) )
     481                         + pvcov(i,j,l)/cv(i,j) )
    480482      if (j==1 .OR. j==jjp1) then !  AdlC MAY 2014
    481483        zrfi(ig0,l) = 0 !  AdlC MAY 2014
     
    483485        if(i==1)then
    484486        zrfi(ig0,l)= 0.25 *(zrot(iim,j-1,l)+zrot(iim,j,l) &
    485               +zrot(1,j-1,l)+zrot(1,j,l))   !  AdlC MAY 2014
     487                     +zrot(1,j-1,l)+zrot(1,j,l))   !  AdlC MAY 2014
    486488        else
    487489        zrfi(ig0,l)= 0.25 *(zrot(i-1,j-1,l)+zrot(i-1,j,l) &
    488               +zrot(i,j-1,l)+zrot(i,j,l))   !  AdlC MAY 2014
     490                     +zrot(i,j-1,l)+zrot(i,j,l))   !  AdlC MAY 2014
    489491        endif
    490492      endif
     
    722724
    723725    CALL call_physiq(klon,llm,nqtot,tracers(:)%name, &
    724           debut_split,lafin_split, &
    725           jD_cur,jH_cur_split,zdt_split, &
    726           zplev_omp,zplay_omp, &
    727           zpk_omp,zphi_omp,zphis_omp, &
    728           presnivs_omp, &
    729           zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp, &
    730           flxwfi_omp,pducov, &
    731           zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp, &
    732           zdpsrf_omp)
     726                     debut_split,lafin_split, &
     727                     jD_cur,jH_cur_split,zdt_split, &
     728                     zplev_omp,zplay_omp, &
     729                     zpk_omp,zphi_omp,zphis_omp, &
     730                     presnivs_omp, &
     731                     zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp, &
     732                     flxwfi_omp,pducov, &
     733                     zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp, &
     734                     zdpsrf_omp)
    733735
    734736
     
    842844
    843845  klon=klon_mpi
    844 500   CONTINUE
     846
     847!!SN 500   CONTINUE !not used
     848
    845849!$OMP BARRIER
    846850
     
    11051109
    11061110       if (i==1) then
    1107           pdufi(iim,j,l)=0.5*(  zdufi2(ig0,l) &
    1108                 + zdufi2(ig0+iim-1,l))*cu(iim,j)
     1111         pdufi(iim,j,l)=0.5*(  zdufi2(ig0,l) &
     1112                             + zdufi2(ig0+iim-1,l))*cu(iim,j)
    11091113         pdufi(iip1,j,l)=0.5*(zdufi2(ig0,l)+zdufi2(ig0+1,l))*cu(i,j)
    11101114       endif
     
    11451149       j=index_j(ig0)
    11461150       pdvfi(i,j,l)=0.5*(zdvfi2(ig0,l)+zdvfi2(ig0+iim,l))*cv(i,j)
    1147        if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l)+ &
    1148              zdvfi2(ig0+iim,l)) &
    1149              *cv(i,j)
     1151       if (i==1) pdvfi(iip1,j,l) = 0.5*(zdvfi2(ig0,l) &
     1152                                        + zdvfi2(ig0+iim,l))*cv(i,j)
    11501153    enddo
    11511154
     
    11851188       DO i=1,iim
    11861189          pdvfi(i,jjm,l)=zdufi(klon,l)*COS(rlonv(i)) &
    1187                 +zdvfi(klon,l)*SIN(rlonv(i))
     1190                        +zdvfi(klon,l)*SIN(rlonv(i))
    11881191
    11891192          pdvfi(i,jjm,l)= &
     
    11991202  !-----------------------------------------------------------------------
    12001203
    1201 700   CONTINUE
     1204!!SN 700   CONTINUE !not used
    12021205
    12031206  firstcal = .FALSE.
  • LMDZ6/trunk/libf/dynphy_lonlat/phylmd/iniphysiq_mod.F90

    r5786 r5927  
    4646  USE lmdz_cppkeys_wrapper, ONLY: CPPKEY_INCA, CPPKEY_REPROBUS
    4747  USE dimensions_mod, ONLY: iim, jjm, llm, ndm
    48 USE paramet_mod_h
    49 IMPLICIT NONE
     48  USE paramet_mod_h
     49
     50  IMPLICIT NONE
    5051
    5152  ! =======================================================================
Note: See TracChangeset for help on using the changeset viewer.