Changeset 2418


Ignore:
Timestamp:
Jan 3, 2016, 11:16:34 AM (9 years ago)
Author:
Ehouarn Millour
Message:

Improving the physics/dynamics interface:

  • added module callphysiq_mod.F90 in dynphy_lonlat/phy* which contains the routine "call_physiq" which is called by calfis* and calls the physics. This way different "physiq" routine from different physics packages may be called: The calfis* routines now exposes all available fields that might be transmitted to physiq but which is actually send (ie: expected/needed by physiq) is decided in call_physiq.
  • turned "physiq.F90" into module "physiq_mod.F90" for better control of "physiq" arguments. Extracted embeded "gr_fi_ecrit" as self-standing routine (but note that this routine actually only works in serial mode).

EM

Location:
LMDZ5/trunk/libf
Files:
4 added
5 edited
3 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dpar/gcm.F

    r2351 r2418  
    3030
    3131#ifdef CPP_PHYS
    32   USE iniphysiq_mod, ONLY: iniphysiq
     32      USE iniphysiq_mod, ONLY: iniphysiq
    3333#endif
    3434      IMPLICIT NONE
  • LMDZ5/trunk/libf/dynphy_lonlat/calfis.F

    r2333 r2418  
    3131      USE infotrac, ONLY: nqtot, niadv, tname
    3232      USE control_mod, ONLY: planet_type, nsplit_phys
    33  
     33#ifdef CPP_PHYS
     34      USE callphysiq_mod, ONLY: call_physiq
     35#endif
    3436
    3537      IMPLICIT NONE
     
    121123      REAL,INTENT(IN) :: pp(iip1,jjp1,llmp1) ! pressure at mesh interfaces (Pa)
    122124      REAL,INTENT(IN) :: ppk(iip1,jjp1,llm) ! Exner at mid-layer
    123       REAL,INTENT(IN) :: flxw(iip1,jjp1,llm)  ! Vertical mass flux on dynamics grid
     125      REAL,INTENT(IN) :: flxw(iip1,jjp1,llm) ! Vertical mass flux on lower mesh interfaces (kg/s) (on llm because flxw(:,:,llm+1)=0)
    124126
    125127      ! tendencies (in */s) from the physics
     
    167169      LOGICAL,SAVE :: firstcal=.true., debut=.true.
    168170!      REAL rdayvrai
    169 
    170       LOGICAL tracerdyn
    171171
    172172c
     
    468468         lafin_split=lafin.and.isplit==nsplit_phys
    469469
    470       if (planet_type=="earth") then
    471 
    472          CALL physiq (ngridmx,
    473      .             llm,
    474      .             debut_split,
    475      .             lafin_split,
    476      .             jD_cur,
    477      .             jH_cur_split,
    478      .             zdt_split,
    479      .             zplev,
    480      .             zplay,
    481      .             zphi,
    482      .             zphis,
    483      .             presnivs,
    484      .             zufi,
    485      .             zvfi, zrfi,
    486      .             ztfi,
    487      .             zqfi,
    488      .             flxwfi,
    489      .             zdufi,
    490      .             zdvfi,
    491      .             zdtfi,
    492      .             zdqfi,
    493      .             zdpsrf,
    494      .             pducov)
    495 
    496       else if ( planet_type=="generic" ) then
    497 
    498          CALL physiq (ngridmx,     !! ngrid
    499      .             llm,            !! nlayer
    500      .             nqtot,          !! nq
    501      .             tname,          !! tracer names from dynamical core (given in infotrac)
    502      .             debut_split,    !! firstcall
    503      .             lafin_split,    !! lastcall
    504      .             jD_cur,         !! pday. see leapfrog
    505      .             jH_cur_split,   !! ptime "fraction of day"
    506      .             zdt_split,      !! ptimestep
    507      .             zplev,          !! pplev
    508      .             zplay,          !! pplay
    509      .             zphi,           !! pphi
    510      .             zufi,           !! pu
    511      .             zvfi,           !! pv
    512      .             ztfi,           !! pt
    513      .             zqfi,           !! pq
    514      .             flxwfi,         !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
    515      .             zdufi,          !! pdu
    516      .             zdvfi,          !! pdv
    517      .             zdtfi,          !! pdt
    518      .             zdqfi,          !! pdq
    519      .             zdpsrf,         !! pdpsrf
    520      .             tracerdyn)      !! tracerdyn <-- utilite ???
    521 
    522       endif ! of if (planet_type=="earth")
     470        CALL call_physiq(ngridmx,llm,nqtot,tname,
     471     &                   debut_split,lafin_split,
     472     &                   jD_cur,jH_cur_split,zdt_split,
     473     &                   zplev,zplay,
     474     &                   zphi,zphis,
     475     &                   presnivs,
     476     &                   zufi,zvfi,zrfi,ztfi,zqfi,
     477     &                   flxwfi,pducov,
     478     &                   zdufi,zdvfi,zdtfi,zdqfi,zdpsrf)
     479                             
     480!      if (planet_type=="earth") then
     481!
     482!         CALL physiq (ngridmx,
     483!     .             llm,
     484!     .             debut_split,
     485!     .             lafin_split,
     486!     .             jD_cur,
     487!     .             jH_cur_split,
     488!     .             zdt_split,
     489!     .             zplev,
     490!     .             zplay,
     491!     .             zphi,
     492!     .             zphis,
     493!     .             presnivs,
     494!     .             zufi,
     495!     .             zvfi, zrfi,
     496!     .             ztfi,
     497!     .             zqfi,
     498!     .             flxwfi,
     499!     .             zdufi,
     500!     .             zdvfi,
     501!     .             zdtfi,
     502!     .             zdqfi,
     503!     .             zdpsrf,
     504!     .             pducov)
     505!
     506!      else if ( planet_type=="generic" ) then
     507!
     508!         CALL physiq (ngridmx,     !! ngrid
     509!     .             llm,            !! nlayer
     510!     .             nqtot,          !! nq
     511!     .             tname,          !! tracer names from dynamical core (given in infotrac)
     512!     .             debut_split,    !! firstcall
     513!     .             lafin_split,    !! lastcall
     514!     .             jD_cur,         !! pday. see leapfrog
     515!     .             jH_cur_split,   !! ptime "fraction of day"
     516!     .             zdt_split,      !! ptimestep
     517!     .             zplev,          !! pplev
     518!     .             zplay,          !! pplay
     519!     .             zphi,           !! pphi
     520!     .             zufi,           !! pu
     521!     .             zvfi,           !! pv
     522!     .             ztfi,           !! pt
     523!     .             zqfi,           !! pq
     524!     .             flxwfi,         !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
     525!     .             zdufi,          !! pdu
     526!     .             zdvfi,          !! pdv
     527!     .             zdtfi,          !! pdt
     528!     .             zdqfi,          !! pdq
     529!     .             zdpsrf,         !! pdpsrf
     530!     .             tracerdyn)      !! tracerdyn <-- utilite ???
     531!
     532!      endif ! of if (planet_type=="earth")
    523533
    524534         zufi(:,:)=zufi(:,:)+zdufi(:,:)*zdt_split
  • LMDZ5/trunk/libf/dynphy_lonlat/calfis_loc.F

    r2351 r2418  
    4747      USE infotrac, ONLY: nqtot, niadv, tname
    4848      USE control_mod, ONLY: planet_type, nsplit_phys
     49#ifdef CPP_PHYS
     50      USE callphysiq_mod, ONLY: call_physiq
     51#endif
    4952
    5053#ifdef CPP_PARA
     
    138141      REAL,INTENT(IN) :: pp(iip1,jjb_u:jje_u,llmp1) ! pressure at mesh interfaces (Pa)
    139142      REAL,INTENT(IN) :: ppk(iip1,jjb_u:jje_u,llm) ! Exner at mid-layer
    140       REAL,INTENT(IN) :: flxw(iip1,jjb_u:jje_u,llm)  ! Vertical mass flux on dynamics grid
     143      REAL,INTENT(IN) :: flxw(iip1,jjb_u:jje_u,llm) ! Vertical mass flux on lower mesh interfaces (kg/s) (on llm because flxw(:,:,llm+1)=0)
    141144
    142145      ! tendencies (in */s) from the physics
     
    240243      INTEGER :: jjb,jje
    241244
    242       LOGICAL tracerdyn 
    243245c
    244246c-----------------------------------------------------------------------
     
    709711         lafin_split=lafin.and.isplit==nsplit_phys
    710712
    711       if (planet_type=="earth") then
    712 
    713       CALL physiq (klon,
    714      .             llm,
    715      .             debut_split,
    716      .             lafin_split,
    717      .             jD_cur,
    718      .             jH_cur_split,
    719      .             zdt_split,
    720      .             zplev_omp,
    721      .             zplay_omp,
    722      .             zphi_omp,
    723      .             zphis_omp,
    724      .             presnivs_omp,
    725      .             zufi_omp,
    726      .             zvfi_omp,
    727      .             zrfi_omp,
    728      .             ztfi_omp,
    729      .             zqfi_omp,
    730      .             flxwfi_omp,
    731      .             zdufi_omp,
    732      .             zdvfi_omp,
    733      .             zdtfi_omp,
    734      .             zdqfi_omp,
    735      .             zdpsrf_omp,
    736      .             pducov)
    737 
    738       else if ( planet_type=="generic" ) then
    739 
    740       CALL physiq (klon,     !! ngrid
    741      .             llm,            !! nlayer
    742      .             nqtot,          !! nq
    743      .             tname,          !! tracer names from dynamical core (given in infotrac)
    744      .             debut_split,    !! firstcall
    745      .             lafin_split,    !! lastcall
    746      .             jD_cur,         !! pday. see leapfrog_p
    747      .             jH_cur_split,   !! ptime "fraction of day"
    748      .             zdt_split,      !! ptimestep
    749      .             zplev_omp,  !! pplev
    750      .             zplay_omp,  !! pplay
    751      .             zphi_omp,   !! pphi
    752      .             zufi_omp,   !! pu
    753      .             zvfi_omp,   !! pv
    754      .             ztfi_omp,   !! pt
    755      .             zqfi_omp,   !! pq
    756      .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
    757      .             zdufi_omp,  !! pdu
    758      .             zdvfi_omp,  !! pdv
    759      .             zdtfi_omp,  !! pdt
    760      .             zdqfi_omp,  !! pdq
    761      .             zdpsrf_omp, !! pdpsrf
    762      .             tracerdyn)      !! tracerdyn <-- utilite ???
    763 
    764       endif ! of if (planet_type=="earth")
     713        CALL call_physiq(klon,llm,nqtot,tname,
     714     &                   debut_split,lafin_split,
     715     &                   jD_cur,jH_cur_split,zdt_split,
     716     &                   zplev_omp,zplay_omp,
     717     &                   zphi_omp,zphis_omp,
     718     &                   presnivs_omp,
     719     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     720     &                   flxwfi_omp,pducov,
     721     &                   zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp,
     722     &                   zdpsrf_omp)
    765723
    766724
  • LMDZ5/trunk/libf/dynphy_lonlat/calfis_p.F

    r2351 r2418  
    3636#endif
    3737#ifdef CPP_PARA
    38       USE parallel_lmdz, ONLY : omp_chunk, using_mpi
     38      USE parallel_lmdz,ONLY:omp_chunk,using_mpi,jjb_u,jje_u,jjb_v,jje_v
     39     $                        ,jj_begin_dyn=>jj_begin,jj_end_dyn=>jj_end
    3940      USE Write_Field
    4041      Use Write_field_p
     
    4344      USE infotrac, ONLY: nqtot, niadv, tname
    4445      USE control_mod, ONLY: planet_type, nsplit_phys
     46#ifdef CPP_PHYS
     47      USE callphysiq_mod, ONLY: call_physiq
     48#endif
    4549
    4650      IMPLICIT NONE
     
    135139      REAL,INTENT(IN) :: pp(iip1,jjp1,llmp1) ! pressure at mesh interfaces (Pa)
    136140      REAL,INTENT(IN) :: ppk(iip1,jjp1,llm) ! Exner at mid-layer
    137       REAL,INTENT(IN) :: flxw(iip1,jjp1,llm)  ! Vertical mass flux on dynamics grid
     141      REAL,INTENT(IN) :: flxw(iip1,jjp1,llm) ! Vertical mass flux on lower mesh interfaces (kg/s) (on llm because flxw(:,:,llm+1)=0)
    138142
    139143      ! tendencies (in */s) from the physics
     
    155159      REAL,ALLOCATABLE,SAVE :: zphi(:,:),zphis(:)
    156160c
    157       REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:)
     161      REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     162      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:), zrfi(:,:)
    158163      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
    159164c
     
    174179      REAL,ALLOCATABLE,SAVE :: zufi_omp(:,:)
    175180      REAL,ALLOCATABLE,SAVE :: zvfi_omp(:,:)
     181      REAL,ALLOCATABLE,SAVE :: zrfi_omp(:,:)
    176182      REAL,ALLOCATABLE,SAVE :: ztfi_omp(:,:)
    177183      REAL,ALLOCATABLE,SAVE :: zqfi_omp(:,:,:)
     
    207213c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zphi_omp,zphis_omp,
    208214c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    209 c$OMP+                 zqfi_omp,zdufi_omp,zdvfi_omp,
     215c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
    210216c$OMP+                 zdtfi_omp,zdqfi_omp,zdpsrf_omp,flxwfi_omp,
    211217c$OMP+                 zdufic_omp,zdvfic_omp,zdtfic_omp,zdqfic_omp)       
     
    234240      integer :: k,kstart,kend
    235241      INTEGER :: offset 
    236 
    237       LOGICAL tracerdyn
     242      INTEGER :: jjb,jje
     243
    238244c
    239245c-----------------------------------------------------------------------
     
    260266      ALLOCATE(zplev(klon,llm+1),zplay(klon,llm))
    261267      ALLOCATE(zphi(klon,llm),zphis(klon))
    262       ALLOCATE(zufi(klon,llm), zvfi(klon,llm))
     268      ALLOCATE(zufi(klon,llm), zvfi(klon,llm),zrfi(klon,llm))
    263269      ALLOCATE(ztfi(klon,llm),zqfi(klon,llm,nqtot))
    264270      ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm))
     
    409415c$OMP END DO NOWAIT
    410416
    411 c   46.champ v:
     417c
     418C  Alvaro de la Camara (May 2014)
     419C  46.1 Calcul de la vorticite et passage sur la grille physique
     420C  --------------------------------------------------------------
     421
     422      jjb=jj_begin_dyn-1
     423      jje=jj_end_dyn+1
     424      if (is_north_pole) jjb=1
     425      if (is_south_pole) jje=jjm
     426
     427c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     428
     429      DO l=1,llm
     430        do i=1,iim
     431          do j=jjb,jje
     432            zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l)
     433     $                   + pucov(i,j+1,l) - pucov(i,j,l))
     434     $                   / (cu(i,j)+cu(i,j+1))
     435     $                   / (cv(i+1,j)+cv(i,j)) *4
     436          enddo
     437        enddo
     438      ENDDO
     439
     440
     441c   46.2champ v:
    412442c   -----------
    413443
     
    422452     $                       + pvcov(i,j,l)/cv(i,j) )
    423453   
     454          if (j==1 .OR. j==jjp1) then !  AdlC MAY 2014
     455            zrfi(ig0,l) = 0 !  AdlC MAY 2014
     456          else
     457            if(i==1)then
     458            zrfi(ig0,l)= 0.25 *(zrot(iim,j-1,l)+zrot(iim,j,l)
     459     $                   +zrot(1,j-1,l)+zrot(1,j,l))   !  AdlC MAY 2014
     460            else
     461            zrfi(ig0,l)= 0.25 *(zrot(i-1,j-1,l)+zrot(i-1,j,l)
     462     $                   +zrot(i,j-1,l)+zrot(i,j,l))   !  AdlC MAY 2014
     463            endif
     464          endif
     465
     466
    424467         ENDDO
    425468      ENDDO
     
    447490           zufi(1,l)  = SSUM(iim,zcos,1)/pi
    448491           zvfi(1,l)  = SSUM(iim,zsin,1)/pi
     492           zrfi(1,l)  = 0.
    449493 
    450494        ENDDO
     
    474518           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
    475519           zvfi(klon,l)  = SSUM(iim,zsin,1)/pi
     520           zrfi(klon,l)  = 0.
    476521        ENDDO
    477522c$OMP END DO NOWAIT       
     
    497542        allocate(zufi_omp(klon,llm))
    498543        allocate(zvfi_omp(klon,llm))
     544        allocate(zrfi_omp(klon,llm))  ! LG Ari 2014
    499545        allocate(ztfi_omp(klon,llm))
    500546        allocate(zqfi_omp(klon,llm,nqtot))
     
    557603      do l=1,llm
    558604        do i=1,klon
     605          zrfi_omp(i,l)=zrfi(offset+i,l)
     606        enddo
     607      enddo
     608       
     609       
     610      do l=1,llm
     611        do i=1,klon
    559612          ztfi_omp(i,l)=ztfi(offset+i,l)
    560613        enddo
     
    623676         lafin_split=lafin.and.isplit==nsplit_phys
    624677
    625       if (planet_type=="earth") then
    626 
    627       CALL physiq (klon,
    628      .             llm,
    629      .             debut_split,
    630      .             lafin_split,
    631      .             jD_cur,
    632      .             jH_cur_split,
    633      .             zdt_split,
    634      .             zplev_omp,
    635      .             zplay_omp,
    636      .             zphi_omp,
    637      .             zphis_omp,
    638      .             presnivs_omp,
    639      .             zufi_omp,
    640      .             zvfi_omp,
    641      .             ztfi_omp,
    642      .             zqfi_omp,
    643      .             flxwfi_omp,
    644      .             zdufi_omp,
    645      .             zdvfi_omp,
    646      .             zdtfi_omp,
    647      .             zdqfi_omp,
    648      .             zdpsrf_omp,
    649      .             pducov)
    650 
    651       else if ( planet_type=="generic" ) then
    652 
    653       CALL physiq (klon,     !! ngrid
    654      .             llm,            !! nlayer
    655      .             nqtot,          !! nq
    656      .             tname,          !! tracer names from dynamical core (given in infotrac)
    657      .             debut_split,    !! firstcall
    658      .             lafin_split,    !! lastcall
    659      .             jD_cur,         !! pday. see leapfrog_p
    660      .             jH_cur_split,   !! ptime "fraction of day"
    661      .             zdt_split,      !! ptimestep
    662      .             zplev_omp,  !! pplev
    663      .             zplay_omp,  !! pplay
    664      .             zphi_omp,   !! pphi
    665      .             zufi_omp,   !! pu
    666      .             zvfi_omp,   !! pv
    667      .             ztfi_omp,   !! pt
    668      .             zqfi_omp,   !! pq
    669      .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
    670      .             zdufi_omp,  !! pdu
    671      .             zdvfi_omp,  !! pdv
    672      .             zdtfi_omp,  !! pdt
    673      .             zdqfi_omp,  !! pdq
    674      .             zdpsrf_omp, !! pdpsrf
    675      .             tracerdyn)      !! tracerdyn <-- utilite ???
    676 
    677       endif ! of if (planet_type=="earth")
     678        CALL call_physiq(klon,llm,nqtot,tname,
     679     &                   debut_split,lafin_split,
     680     &                   jD_cur,jH_cur_split,zdt_split,
     681     &                   zplev_omp,zplay_omp,
     682     &                   zphi_omp,zphis_omp,
     683     &                   presnivs_omp,
     684     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     685     &                   flxwfi_omp,pducov,
     686     &                   zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp,
     687     &                   zdpsrf_omp)
    678688
    679689
  • LMDZ5/trunk/libf/phydev/physiq_mod.F90

    r2416 r2418  
    11! $Id: physiq.F 1565 2011-08-31 12:53:29Z jghattas $
    2 !#define IO_DEBUG
     2MODULE physiq_mod
     3
     4IMPLICIT NONE
     5
     6CONTAINS
    37
    48      SUBROUTINE physiq (nlon,nlev, &
    59     &            debut,lafin,jD_cur, jH_cur,pdtphys, &
    610     &            paprs,pplay,pphi,pphis,presnivs, &
    7      &            u,v,rot,t,qx, &
     11     &            u,v,t,qx, &
    812     &            flxmass_w, &
    9      &            d_u, d_v, d_t, d_qx, d_ps &
    10      &            , dudyn)
     13     &            d_u, d_v, d_t, d_qx, d_ps)
    1114
    1215      USE dimphy, only : klon,klev
     
    5255      real,intent(out) :: d_qx(klon,klev,nqtot) ! physics tendency on tracers
    5356      real,intent(out) :: d_ps(klon) ! physics tendency on surface pressure
    54       real,intent(in) :: dudyn(nbp_lon+1,nbp_lat,klev) ! Not used
    55       REAL, intent(in):: rot(klon, klev) ! Not used
    56       ! relative vorticity, in s-1, needed for frontal waves
    5757
    5858integer,save :: itau=0 ! counter to count number of calls to physics
     
    200200
    201201end subroutine physiq
     202
     203END MODULE physiq_mod
  • LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90

    r2403 r2418  
    3636   USE iniphysiq_mod, ONLY: iniphysiq
    3737   USE mod_const_mpi, ONLY: comm_lmdz
     38   USE physiq_mod, ONLY: physiq
    3839
    3940      implicit none
     
    219220      logical :: firstcall=.true.
    220221      logical :: lastcall=.false.
    221       real :: phis    = 0.0
    222       real :: dpsrf 
     222      real :: phis(1)    = 0.0
     223      real :: dpsrf(1)
    223224
    224225!---------------------------------------------------------------------
  • LMDZ5/trunk/libf/phylmd/physiq_mod.F90

    r2416 r2418  
     1!
    12! $Id$
     3!
    24!#define IO_DEBUG
     5MODULE physiq_mod
     6
     7IMPLICIT NONE
     8
     9CONTAINS
    310
    411SUBROUTINE physiq (nlon,nlev, &
     
    44704477  !      first=.false.
    44714478
    4472   RETURN
     4479
    44734480END SUBROUTINE physiq
     4481
    44744482FUNCTION qcheck(klon,klev,paprs,q,ql,aire)
    44754483  IMPLICIT none
     
    44994507  qcheck = qtotal/zx
    45004508  !
    4501   RETURN
    45024509END FUNCTION qcheck
    4503 SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit)
    4504   IMPLICIT none
    4505   !
    4506   ! Tranformer une variable de la grille physique a
    4507   ! la grille d'ecriture
    4508   !
    4509   INTEGER nfield,nlon,iim,jjmp1, jjm
    4510   REAL fi(nlon,nfield), ecrit(iim*jjmp1,nfield)
    4511   !
    4512   INTEGER i, n, ig
    4513   !
    4514   jjm = jjmp1 - 1
    4515   DO n = 1, nfield
    4516      DO i=1,iim
    4517         ecrit(i,n) = fi(1,n)
    4518         ecrit(i+jjm*iim,n) = fi(nlon,n)
    4519      ENDDO
    4520      DO ig = 1, nlon - 2
    4521         ecrit(iim+ig,n) = fi(1+ig,n)
    4522      ENDDO
    4523   ENDDO
    4524   RETURN
    4525   END SUBROUTINE gr_fi_ecrit
    4526 
     4510
     4511END MODULE physiq_mod
  • LMDZ5/trunk/libf/phymar/physiq_mod.F90

    r2416 r2418  
    11! $Id: physiq.F 1565 2011-08-31 12:53:29Z jghattas $
    22!#define IO_DEBUG
     3MODULE physiq_mod
     4
     5IMPLICIT NONE
     6
     7CONTAINS
    38
    49!========================================================================================================================
     
    11411146PRINT*, 'Fin de physiq.f90'
    11421147
    1143       return
    1144       end
    1145 
    1146 ! sub-routine inutilisée :
    1147 
    1148 !SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit)
    1149 !     IMPLICIT none
    1150 
    1151 !  Tranformer une variable de la grille physique a
    1152 !  la grille d'ecriture
    1153 !      INTEGER nfield,nlon,iim,jjmp1, jjm
    1154 !      REAL fi(nlon,nfield), ecrit(iim*jjmp1,nfield)
    1155 !      INTEGER i, n, ig
    1156 !      jjm = jjmp1 - 1
    1157 !      DO n = 1, nfield
    1158 !        DO i=1,iim
    1159 !             ecrit(i,n) = fi(1,n)
    1160 !,            ecrit(i+jjm*iim,n) = fi(nlon,n)
    1161 !        ENDDO
    1162 !        DO ig = 1, nlon - 2
    1163 !             ecrit(iim+ig,n) = fi(1+ig,n)
    1164 !        ENDDO
    1165 !      ENDDO
    1166 !RETURN
    1167 !END
     1148end subroutine physiq
     1149
     1150
     1151END MODULE physiq_mod
Note: See TracChangeset for help on using the changeset viewer.