Changeset 1549


Ignore:
Timestamp:
May 6, 2016, 12:30:29 PM (9 years ago)
Author:
emillour
Message:

All GCMs:
Further adaptations to keep up with changes in LMDZ5 concerning
physics/dynamics separation (up to rev r2420 of LMDZ5)

  • all physics packages:
  • 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.F[90]" into module "physiq_mod.F[90]" for better control of "physiq" arguments. for phyvenus/phytitan, extracted gr_fi_ecrit from physiq.F as gr_fi_ecrit.F90 (note that it can only work in serial).
  • misc:
  • updated wxios.F90 to keep up with LMDZ5 modifications.
  • dyn3d_common:
  • infotrac.F90 keep up with LMDZ5 modifications (cosmetics)
  • dyn3d:
  • gcm.F90: cosmetic cleanup.
  • leapfrog.F90: fix computation of date as function of itau.
  • dyn3dpar:
  • gcm.F: cosmetic cleanup.
  • leapfrog_p.F90: fix computation of date as function of itau.

NB: physics are given the date corresponding to the end of the
physics step.

  • dynphy_lonlat:
  • calfis.F : added computation of relative wind vorticity.
  • calfis_p.F: added computation of relative wind vorticity (input required by Earth physics)

EM

Location:
trunk
Files:
6 added
17 edited
4 moved

Legend:

Unmodified
Added
Removed
  • trunk/DOC/chantiers/commit_importants.log

    r1545 r1549  
    17301730Also added checking in phyetat0 that the longitude/latitude read in the
    17311731restartphy.nc files match the ones provided by the dynamics.
     1732
     1733**********************
     1734**** commit_v1549 ****
     1735**********************
     1736Ehouarn: Further adaptations to keep up with changes in LMDZ5 concerning
     1737physics/dynamics separation (up to rev r2420 of LMDZ5)
     1738* all physics packages:
     1739- added module callphysiq_mod.F90 in dynphy_lonlat/phy*** which contains
     1740  the routine "call_physiq" which is called by calfis* and calls the
     1741  physics. This way different "physiq" routine from different physics
     1742  packages may be called: The calfis* routines now exposes all available
     1743  fields that might be transmitted to physiq but which is actually send
     1744  (ie: expected/needed by physiq) is decided in call_physiq.
     1745- turned "physiq.F[90]" into module "physiq_mod.F[90]" for better control 
     1746  of "physiq" arguments. for phyvenus/phytitan, extracted gr_fi_ecrit from
     1747  physiq.F as gr_fi_ecrit.F90 (note that it can only work in serial).
     1748
     1749* misc:
     1750- updated wxios.F90 to keep up with LMDZ5 modifications.
     1751
     1752* dyn3d_common:
     1753- infotrac.F90 keep up with LMDZ5 modifications (cosmetics)
     1754
     1755* dyn3d:
     1756- gcm.F90: cosmetic cleanup.
     1757- leapfrog.F90: fix computation of date as function of itau.
     1758
     1759* dyn3dpar:
     1760- gcm.F: cosmetic cleanup.
     1761- leapfrog_p.F90: fix computation of date as function of itau.
     1762    NB: physics are given the date corresponding to the end of the
     1763    physics step.
     1764
     1765* dynphy_lonlat:
     1766- calfis.F : added computation of relative wind vorticity.
     1767- calfis_p.F: added computation of relative wind vorticity (input required
     1768  by Earth physics)
  • trunk/LMDZ.COMMON/libf/dyn3d/gcm.F90

    r1543 r1549  
    8585  include "iniprint.h"
    8686  include "tracstoke.h"
    87 #ifdef INCA
    88 ! Only INCA needs these informations (from the Earth's physics)
    89 !#include "indicesol.h"
    90 #endif
    91 
    9287
    9388  REAL zdtvr
  • trunk/LMDZ.COMMON/libf/dyn3d/leapfrog.F

    r1508 r1549  
    298298   1  CONTINUE ! Matsuno Forward step begins here
    299299
     300c   date: (NB: date remains unchanged for Backward step)
     301c   -----
     302
    300303      jD_cur = jD_ref + day_ini - day_ref +                             &
    301      &          itau/day_step
     304     &          (itau+1)/day_step
    302305      jH_cur = jH_ref + start_time +                                    &
    303      &          mod(itau,day_step)/float(day_step)
     306     &          mod(itau+1,day_step)/float(day_step)
    304307      jD_cur = jD_cur + int(jH_cur)
    305308      jH_cur = jH_cur - int(jH_cur)
     
    349352c-----------------------------------------------------------------------
    350353
    351 c   date:
     354c   date: (NB: only leapfrog step requires recomputing date)
    352355c   -----
     356
     357      IF (leapf) THEN
     358        jD_cur = jD_ref + day_ini - day_ref +
     359     &            (itau+1)/day_step
     360        jH_cur = jH_ref + start_time +
     361     &            mod(itau+1,day_step)/float(day_step)
     362        jD_cur = jD_cur + int(jH_cur)
     363        jH_cur = jH_cur - int(jH_cur)
     364      ENDIF
    353365
    354366
     
    516528
    517529           jD_cur = jD_ref + day_ini - day_ref +                        &
    518      &          itau/day_step
     530     &          (itau+1)/day_step
    519531
    520532           IF ((planet_type .eq."generic").or.
     
    525537
    526538           jH_cur = jH_ref + start_time +                               &
    527      &          mod(itau,day_step)/float(day_step)
     539     &          mod(itau+1,day_step)/float(day_step)
     540           IF ((planet_type .eq."generic").or.
     541     &         (planet_type .eq."mars")) THEN
     542             jH_cur = jH_ref + start_time +                               &
     543     &          mod(itau,day_step)/float(day_step)
     544           ENDIF
    528545           jD_cur = jD_cur + int(jH_cur)
    529546           jH_cur = jH_cur - int(jH_cur)
  • trunk/LMDZ.COMMON/libf/dyn3d_common/infotrac.F90

    r1508 r1549  
    728728
    729729    do iq=nqo+1,nqtot
    730        write(lunout,*) 'infotrac 569: iq,tnom_0(iq)=',iq,tnom_0(iq)
     730!       write(lunout,*) 'infotrac 569: iq,tnom_0(iq)=',iq,tnom_0(iq)
    731731       do phase=1,nqo   
    732732        do ixt= 1,niso_possibles   
    733733         tnom_trac=trim(tnom_0(phase))//'_'
    734734         tnom_trac=trim(tnom_trac)//trim(tnom_iso(ixt))
    735          write(*,*) 'phase,ixt,tnom_trac=',phase,ixt,tnom_trac     
     735!         write(*,*) 'phase,ixt,tnom_trac=',phase,ixt,tnom_trac     
    736736         IF (tnom_0(iq) == tnom_trac) then
    737           write(lunout,*) 'Ce traceur est un isotope'
     737!          write(lunout,*) 'Ce traceur est un isotope'
    738738          nb_iso(ixt,phase)=nb_iso(ixt,phase)+1   
    739739          nb_isoind(phase)=nb_isoind(phase)+1   
     
    742742          indnum_fn_num(ixt)=iso_indnum(iq)
    743743          phase_num(iq)=phase
    744           write(lunout,*) 'iso_num(iq)=',iso_num(iq)
    745           write(lunout,*) 'iso_indnum(iq)=',iso_indnum(iq)
    746           write(lunout,*) 'indnum_fn_num(ixt)=',indnum_fn_num(ixt)
    747           write(lunout,*) 'phase_num(iq)=',phase_num(iq)
     744!          write(lunout,*) 'iso_num(iq)=',iso_num(iq)
     745!          write(lunout,*) 'iso_indnum(iq)=',iso_indnum(iq)
     746!          write(lunout,*) 'indnum_fn_num(ixt)=',indnum_fn_num(ixt)
     747!          write(lunout,*) 'phase_num(iq)=',phase_num(iq)
    748748          goto 20
    749749         else if (iqpere(iq).gt.0) then         
    750750          if (tnom_0(iqpere(iq)) == tnom_trac) then
    751            write(lunout,*) 'Ce traceur est le fils d''un isotope'
     751!           write(lunout,*) 'Ce traceur est le fils d''un isotope'
    752752           ! c'est un traceur d'isotope
    753753           nb_traciso(ixt,phase)=nb_traciso(ixt,phase)+1
     
    756756           zone_num(iq)=nb_traciso(ixt,phase)
    757757           phase_num(iq)=phase
    758            write(lunout,*) 'iso_num(iq)=',iso_num(iq)
    759            write(lunout,*) 'phase_num(iq)=',phase_num(iq)
    760            write(lunout,*) 'zone_num(iq)=',zone_num(iq)
     758!           write(lunout,*) 'iso_num(iq)=',iso_num(iq)
     759!           write(lunout,*) 'phase_num(iq)=',phase_num(iq)
     760!           write(lunout,*) 'zone_num(iq)=',zone_num(iq)
    761761           goto 20
    762762          endif !if (tnom_0(iqpere(iq)) == trim(tnom_0(phase))//trim(tnom_iso(ixt))) then
     
    767767      enddo !do iq=1,nqtot
    768768
    769       write(lunout,*) 'iso_num=',iso_num
    770       write(lunout,*) 'iso_indnum=',iso_indnum
    771       write(lunout,*) 'zone_num=',zone_num 
    772       write(lunout,*) 'phase_num=',phase_num
    773       write(lunout,*) 'indnum_fn_num=',indnum_fn_num
     769!      write(lunout,*) 'iso_num=',iso_num
     770!      write(lunout,*) 'iso_indnum=',iso_indnum
     771!      write(lunout,*) 'zone_num=',zone_num 
     772!      write(lunout,*) 'phase_num=',phase_num
     773!      write(lunout,*) 'indnum_fn_num=',indnum_fn_num
    774774
    775775      do ixt= 1,niso_possibles 
     
    824824    ! dimensions isotopique:
    825825    ntraciso=niso*(ntraceurs_zone+1)
    826     WRITE(lunout,*) 'niso=',niso
    827     WRITE(lunout,*) 'ntraceurs_zone,ntraciso=',ntraceurs_zone,ntraciso   
     826!    WRITE(lunout,*) 'niso=',niso
     827!    WRITE(lunout,*) 'ntraceurs_zone,ntraciso=',ntraceurs_zone,ntraciso   
    828828 
    829829    ! flags isotopiques:
     
    833833        ok_isotopes=.false.
    834834    endif
    835     WRITE(lunout,*) 'ok_isotopes=',ok_isotopes
     835!    WRITE(lunout,*) 'ok_isotopes=',ok_isotopes
    836836 
    837837    if (ok_isotopes) then
     
    843843        alpha_ideal=(/1.0,1.01,1.006,1.003,1.0/)
    844844    endif !if (ok_isotopes) then 
    845     WRITE(lunout,*) 'ok_iso_verif=',ok_iso_verif
    846     WRITE(lunout,*) 'ok_init_iso=',ok_init_iso
     845!    WRITE(lunout,*) 'ok_iso_verif=',ok_iso_verif
     846!    WRITE(lunout,*) 'ok_init_iso=',ok_init_iso
    847847
    848848    if (ntraceurs_zone.gt.0) then
     
    851851        ok_isotrac=.false.
    852852    endif   
    853     WRITE(lunout,*) 'ok_isotrac=',ok_isotrac
     853!    WRITE(lunout,*) 'ok_isotrac=',ok_isotrac
    854854
    855855    ! remplissage du tableau iqiso(ntraciso,phase)
     
    875875        index_trac(:,:)=0.0
    876876    endif !if (ok_isotrac) then
    877     write(lunout,*) 'index_trac=',index_trac   
     877!    write(lunout,*) 'index_trac=',index_trac   
    878878
    879879! Finalize :
  • trunk/LMDZ.COMMON/libf/dyn3dpar/gcm.F

    r1543 r1549  
    2828
    2929
    30 #ifdef INCA
    31 ! Only INCA needs these informations (from the Earth's physics)
    32       USE indice_sol_mod
    33 #endif
    34 
    3530! Ehouarn: the following are needed with (parallel) physics:
    3631#ifdef CPP_PHYS
     
    8681#include "iniprint.h"
    8782#include "tracstoke.h"
    88 #ifdef INCA
    89 ! Only INCA needs these informations (from the Earth's physics)
    90 #include "indicesol.h"
    91 #endif
    9283
    9384
     
    258249      endif
    259250#endif
    260 c-----------------------------------------------------------------------
    261 
    262       IF (type_trac == 'inca') THEN
    263 #ifdef INCA
    264          call init_const_lmdz(
    265      $        nbtr,anneeref,dayref,
    266      $        iphysiq,day_step,nday,
    267      $        nbsrf, is_oce,is_sic,
    268      $        is_ter,is_lic, calend)
    269 
    270          call init_inca_para(
    271      $        iim,jjm+1,llm,klon_glo,mpi_size,
    272      $        distrib_phys,COMM_LMDZ)
    273 #endif
    274       END IF
    275 
    276251c-----------------------------------------------------------------------
    277252c   Initialisation des traceurs
     
    507482
    508483c-----------------------------------------------------------------------
    509 c   Initialisation des dimensions d'INCA :
    510 c   --------------------------------------
    511       IF (type_trac == 'inca') THEN
    512 #ifdef INCA
    513 !$OMP PARALLEL
    514          CALL init_inca_dim(klon_omp,llm,iim,jjm,
    515      $        rlonu,rlatu,rlonv,rlatv)
    516 !$OMP END PARALLEL
    517 #endif
    518       END IF
    519 
    520 c-----------------------------------------------------------------------
    521484c   Initialisation des I/O :
    522485c   ------------------------
  • trunk/LMDZ.COMMON/libf/dyn3dpar/leapfrog_p.F

    r1508 r1549  
    313313   1  CONTINUE ! Matsuno Forward step begins here
    314314
     315c   date: (NB: date remains unchanged for Backward step)
     316c   -----
     317
    315318      jD_cur = jD_ref + day_ini - day_ref +                             &
    316      &          itau/day_step
     319     &          (itau+1)/day_step
    317320      jH_cur = jH_ref + start_time +                                    &
    318      &         mod(itau,day_step)/float(day_step)
     321     &         mod(itau+1,day_step)/float(day_step)
    319322      if (jH_cur > 1.0 ) then
    320323        jD_cur = jD_cur +1.
     
    414417c-----------------------------------------------------------------------
    415418
    416 c   date:
     419c   date:  (NB: only leapfrog step requires recomputing date)
    417420c   -----
     421
     422      IF (leapf) THEN
     423        jD_cur = jD_ref + day_ini - day_ref +
     424     &            (itau+1)/day_step
     425        jH_cur = jH_ref + start_time +
     426     &           mod(itau+1,day_step)/float(day_step)
     427        if (jH_cur > 1.0 ) then
     428          jD_cur = jD_cur +1.
     429          jH_cur = jH_cur -1.
     430        endif
     431      ENDIF
    418432
    419433
     
    858872
    859873           jD_cur = jD_ref + day_ini - day_ref
    860      $        + itau/day_step
     874     $        + (itau+1)/day_step
    861875
    862876           IF ((planet_type .eq."generic").or.
     
    867881
    868882           jH_cur = jH_ref + start_time +                                &
    869      &              mod(itau,day_step)/float(day_step)
    870 !         call ju2ymds(jD_cur+jH_cur, an, mois, jour, secondes)
     883     &              mod(itau+1,day_step)/float(day_step)
     884           IF ((planet_type .eq."generic").or.
     885     &         (planet_type .eq."mars")) THEN
     886             jH_cur = jH_ref + start_time +                               &
     887     &          mod(itau,day_step)/float(day_step)
     888           ENDIF
    871889           if (jH_cur > 1.0 ) then
    872890             jD_cur = jD_cur +1.
  • trunk/LMDZ.COMMON/libf/dynphy_lonlat/calfis.F

    r1459 r1549  
    3333      USE write_field
    3434      USE cpdet_mod, only: t2tpot,tpot2t
    35  
     35#ifdef CPP_PHYS
     36      USE callphysiq_mod, ONLY: call_physiq
     37#endif
     38
    3639! used only for zonal averages
    3740      USE moyzon_mod
     
    145148      REAL zphi(ngridmx,llm),zphis(ngridmx)
    146149
     150      REAL zrot(iip1,jjm,llm) ! AdlC May 2014
    147151      REAL zufi(ngridmx,llm), zvfi(ngridmx,llm)
     152      REAL zrfi(ngridmx,llm) ! relative wind vorticity
    148153      REAL ztfi(ngridmx,llm),zqfi(ngridmx,llm,nqtot)
    149154! ADAPTATION GCM POUR CP(T)
     
    572577
    573578
     579C  Alvaro de la Camara (May 2014)
     580C  46.1 Calcul de la vorticite et passage sur la grille physique
     581C  --------------------------------------------------------------
     582      DO l=1,llm
     583        do i=1,iim
     584          do j=1,jjm
     585            zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l)
     586     $                   + pucov(i,j+1,l) - pucov(i,j,l))
     587     $                   / (cu(i,j)+cu(i,j+1))
     588     $                   / (cv(i+1,j)+cv(i,j)) *4
     589          enddo
     590        enddo
     591      ENDDO
     592
    574593c   46.champ v:
    575594c   -----------
     
    584603c     $         ( pdvcov(i,j-1,l)/cv(i,j-1) + pdvcov(i,j,l)/cv(i,j) )
    585604            ENDDO
     605               zrfi(ig0 + 1,l)= 0.25 *(zrot(iim,j-1,l)+zrot(iim,j,l)
     606     &                                +zrot(1,j-1,l)+zrot(1,j,l))
     607            DO i=2,iim
     608               zrfi(ig0 + i,l)= 0.25 *(zrot(i-1,j-1,l)+zrot(i-1,j,l)
     609     $                   +zrot(i,j-1,l)+zrot(i,j,l))   !  AdlC MAY 2014
     610            ENDDO
    586611         ENDDO
    587612      ENDDO
     
    613638         zvfi(1,l)  = SSUM(iim,zsin,1)/pi
    614639!         pcvgv(1,l) = SSUM(iim,zsinbis,1)/pi
    615 
     640         zrfi(1, l) = 0.
    616641      ENDDO
    617642
     
    642667         zvfi(ngridmx,l)  = SSUM(iim,zsin,1)/pi
    643668!         pcvgv(ngridmx,l) = SSUM(iim,zsinbis,1)/pi
    644 
     669         zrfi(ngridmx, l) = 0.
    645670      ENDDO
    646671c
     
    674699         lafin_split=lafin.and.isplit==nsplit_phys
    675700
    676       if (planet_type.eq."earth") then
    677          CALL physiq (ngridmx,
    678      .             llm,
    679      .             debut_split,
    680      .             lafin_split,
    681      .             jD_cur,
    682      .             jH_cur_split,
    683      .             zdt_split,
    684      .             zplev,
    685      .             zplay,
    686      .             zphi,
    687      .             zphis,
    688      .             presnivs,
    689      .             zufi,
    690      .             zvfi,
    691      .             ztfi,
    692      .             zqfi,
    693      .             flxwfi,
    694      .             zdufi,
    695      .             zdvfi,
    696      .             zdtfi,
    697      .             zdqfi,
    698      .             zdpsrf,
    699      .             pducov)
    700 
    701       else if ( planet_type=="generic" ) then
    702 
    703          CALL physiq (ngridmx,     !! ngrid
    704      .             llm,            !! nlayer
    705      .             nqtot,          !! nq
    706      .             tname,          !! tracer names from dynamical core (given in infotrac)
    707      .             debut_split,    !! firstcall
    708      .             lafin_split,    !! lastcall
    709      .             jD_cur,         !! pday. see leapfrog
    710      .             jH_cur_split,   !! ptime "fraction of day"
    711      .             zdt_split,      !! ptimestep
    712      .             zplev,          !! pplev
    713      .             zplay,          !! pplay
    714      .             zphi,           !! pphi
    715      .             zufi,           !! pu
    716      .             zvfi,           !! pv
    717      .             ztfi,           !! pt
    718      .             zqfi,           !! pq
    719      .             flxwfi,         !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
    720      .             zdufi,          !! pdu
    721      .             zdvfi,          !! pdv
    722      .             zdtfi,          !! pdt
    723      .             zdqfi,          !! pdq
    724      .             zdpsrf,         !! pdpsrf
    725      .             tracerdyn)      !! tracerdyn <-- utilite ???
    726 
    727       else if ( planet_type=="mars" ) then
    728 
    729         CALL physiq (ngridmx,    ! ngrid
    730      .             llm,          ! nlayer
    731      .             nqtot,        ! nq
    732      .             debut_split,  ! firstcall
    733      .             lafin_split,  ! lastcall
    734      .             jD_cur,       ! pday
    735      .             jH_cur_split, ! ptime
    736      .             zdt_split,    ! ptimestep
    737      .             zplev,        ! pplev
    738      .             zplay,        ! pplay
    739      .             zphi,         ! pphi
    740      .             zufi,         ! pu
    741      .             zvfi,         ! pv
    742      .             ztfi,         ! pt
    743      .             zqfi,         ! pq
    744      .             flxwfi,       ! pw
    745      .             zdufi,        ! pdu
    746      .             zdvfi,        ! pdv
    747      .             zdtfi,        ! pdt
    748      .             zdqfi,        ! pdq
    749      .             zdpsrf,       ! pdpsrf
    750      .             tracerdyn)    ! tracerdyn (somewhat obsolete)
    751 
    752       else if ((planet_type=="titan").or.(planet_type=="venus")) then
    753 
    754          CALL physiq (ngridmx,
    755      .             llm,
    756      .             nqtot,
    757      .             debut_split,
    758      .             lafin_split,
    759      .             jD_cur,
    760      .             jH_cur_split,
    761      .             zdt_split,
    762      .             zplev,
    763      .             zplay,
    764      .             zpk,
    765      .             zphi,
    766      .             zphis,
    767      .             presnivs,
    768      .             zufi,
    769      .             zvfi,
    770      .             ztfi,
    771      .             zqfi,
    772      .             flxwfi,
    773      .             zdufi,
    774      .             zdvfi,
    775      .             zdtfi,
    776      .             zdqfi,
    777      .             zdpsrf)
    778 
    779       else ! unknown "planet_type"
    780 
    781         write(lunout,*) "calfis_p: error, unknown planet_type: ",
    782      &                  trim(planet_type)
    783         stop
    784 
    785       endif ! planet_type
     701        CALL call_physiq(ngridmx,llm,nqtot,tname,
     702     &                   debut_split,lafin_split,
     703     &                   jD_cur,jH_cur_split,zdt_split,
     704     &                   zplev,zplay,
     705     &                   zpk,zphi,zphis,
     706     &                   presnivs,
     707     &                   zufi,zvfi,zrfi,ztfi,zqfi,
     708     &                   flxwfi,pducov,
     709     &                   zdufi,zdvfi,zdtfi,zdqfi,zdpsrf,
     710     &                   tracerdyn)
     711
     712!      if (planet_type.eq."earth") then
     713!         CALL physiq (ngridmx,
     714!     .             llm,
     715!     .             debut_split,
     716!     .             lafin_split,
     717!     .             jD_cur,
     718!     .             jH_cur_split,
     719!     .             zdt_split,
     720!     .             zplev,
     721!     .             zplay,
     722!     .             zphi,
     723!     .             zphis,
     724!     .             presnivs,
     725!     .             zufi,
     726!     .             zvfi,
     727!     .             ztfi,
     728!     .             zqfi,
     729!     .             flxwfi,
     730!     .             zdufi,
     731!     .             zdvfi,
     732!     .             zdtfi,
     733!     .             zdqfi,
     734!     .             zdpsrf,
     735!     .             pducov)
     736!
     737!      else if ( planet_type=="generic" ) then
     738!
     739!         CALL physiq (ngridmx,     !! ngrid
     740!     .             llm,            !! nlayer
     741!     .             nqtot,          !! nq
     742!     .             tname,          !! tracer names from dynamical core (given in infotrac)
     743!     .             debut_split,    !! firstcall
     744!     .             lafin_split,    !! lastcall
     745!     .             jD_cur,         !! pday. see leapfrog
     746!     .             jH_cur_split,   !! ptime "fraction of day"
     747!     .             zdt_split,      !! ptimestep
     748!     .             zplev,          !! pplev
     749!     .             zplay,          !! pplay
     750!     .             zphi,           !! pphi
     751!     .             zufi,           !! pu
     752!     .             zvfi,           !! pv
     753!     .             ztfi,           !! pt
     754!     .             zqfi,           !! pq
     755!     .             flxwfi,         !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
     756!     .             zdufi,          !! pdu
     757!     .             zdvfi,          !! pdv
     758!     .             zdtfi,          !! pdt
     759!     .             zdqfi,          !! pdq
     760!     .             zdpsrf,         !! pdpsrf
     761!     .             tracerdyn)      !! tracerdyn <-- utilite ???
     762!
     763!      else if ( planet_type=="mars" ) then
     764!
     765!        CALL physiq (ngridmx,    ! ngrid
     766!     .             llm,          ! nlayer
     767!     .             nqtot,        ! nq
     768!     .             debut_split,  ! firstcall
     769!     .             lafin_split,  ! lastcall
     770!     .             jD_cur,       ! pday
     771!     .             jH_cur_split, ! ptime
     772!     .             zdt_split,    ! ptimestep
     773!     .             zplev,        ! pplev
     774!     .             zplay,        ! pplay
     775!     .             zphi,         ! pphi
     776!     .             zufi,         ! pu
     777!     .             zvfi,         ! pv
     778!     .             ztfi,         ! pt
     779!     .             zqfi,         ! pq
     780!     .             flxwfi,       ! pw
     781!     .             zdufi,        ! pdu
     782!     .             zdvfi,        ! pdv
     783!     .             zdtfi,        ! pdt
     784!     .             zdqfi,        ! pdq
     785!     .             zdpsrf,       ! pdpsrf
     786!     .             tracerdyn)    ! tracerdyn (somewhat obsolete)
     787!
     788!      else if ((planet_type=="titan").or.(planet_type=="venus")) then
     789!
     790!         CALL physiq (ngridmx,
     791!     .             llm,
     792!     .             nqtot,
     793!     .             debut_split,
     794!     .             lafin_split,
     795!     .             jD_cur,
     796!     .             jH_cur_split,
     797!     .             zdt_split,
     798!     .             zplev,
     799!     .             zplay,
     800!     .             zpk,
     801!     .             zphi,
     802!     .             zphis,
     803!     .             presnivs,
     804!     .             zufi,
     805!     .             zvfi,
     806!     .             ztfi,
     807!     .             zqfi,
     808!     .             flxwfi,
     809!     .             zdufi,
     810!     .             zdvfi,
     811!     .             zdtfi,
     812!     .             zdqfi,
     813!     .             zdpsrf)
     814!
     815!      else ! unknown "planet_type"
     816!
     817!        write(lunout,*) "calfis_p: error, unknown planet_type: ",
     818!     &                  trim(planet_type)
     819!        stop
     820!
     821!      endif ! planet_type
    786822
    787823         zufi(:,:)=zufi(:,:)+zdufi(:,:)*zdt_split
  • trunk/LMDZ.COMMON/libf/dynphy_lonlat/calfis_p.F

    r1543 r1549  
    3636#endif
    3737#ifdef CPP_PARA
    38       USE parallel_lmdz, ONLY : omp_chunk, using_mpi, AllGather_Field
     38      USE parallel_lmdz, ONLY: omp_chunk, using_mpi, AllGather_Field,
     39     &                         jjb_u,jje_u,jjb_v,jje_v,
     40     &                         jj_begin_dyn=>jj_begin,jj_end_dyn=>jj_end
    3941      USE Write_Field
    4042      Use Write_field_p
     
    4951      USE comconst_mod, ONLY: daysec,dtvr,dtphys,kappa,cpp,g,rad,pi
    5052      USE logic_mod, ONLY: moyzon_ch,moyzon_mu
     53#ifdef CPP_PHYS
     54      USE callphysiq_mod, ONLY: call_physiq
     55#endif
    5156
    5257      IMPLICIT NONE
     
    159164      REAL,ALLOCATABLE,SAVE :: zphi(:,:),zphis(:)
    160165
     166!      REAL zrot(iip1,jjb_v:jje_v,llm) ! AdlC May 2014
     167      REAL :: zrot(iip1,jjm,llm)
    161168      REAL,ALLOCATABLE,SAVE :: zufi(:,:), zvfi(:,:)
    162169      REAL,ALLOCATABLE,SAVE :: ztfi(:,:),zqfi(:,:,:)
     
    170177!      REAL,ALLOCATABLE,SAVE :: pcvgt(:,:), pcvgq(:,:,:)
    171178c
    172       REAL,ALLOCATABLE,SAVE :: zdufi(:,:),zdvfi(:,:)
     179      REAL,ALLOCATABLE,SAVE :: zdufi(:,:),zdvfi(:,:), zrfi(:,:)
    173180      REAL,ALLOCATABLE,SAVE :: zdtfi(:,:),zdqfi(:,:,:)
    174181      REAL,ALLOCATABLE,SAVE :: zdpsrf(:)
     
    183190      REAL,ALLOCATABLE,SAVE :: zufi_omp(:,:)
    184191      REAL,ALLOCATABLE,SAVE :: zvfi_omp(:,:)
     192      REAL,ALLOCATABLE,SAVE :: zrfi_omp(:,:)
    185193      REAL,ALLOCATABLE,SAVE :: ztfi_omp(:,:)
    186194      REAL,ALLOCATABLE,SAVE :: zqfi_omp(:,:,:)
     
    216224c$OMP THREADPRIVATE(zplev_omp,zplay_omp,zpk_omp,zphi_omp,zphis_omp,
    217225c$OMP+                 presnivs_omp,zufi_omp,zvfi_omp,ztfi_omp,
    218 c$OMP+                 zqfi_omp,zdufi_omp,zdvfi_omp,
     226c$OMP+                 zrfi_omp,zqfi_omp,zdufi_omp,zdvfi_omp,
    219227c$OMP+                 zdtfi_omp,zdqfi_omp,zdpsrf_omp,flxwfi_omp,
    220228c$OMP+                 zdufic_omp,zdvfic_omp,zdtfic_omp,zdqfic_omp)       
     
    244252      integer :: k,kstart,kend
    245253      INTEGER :: offset 
     254      INTEGER :: jjb,jje
    246255
    247256      LOGICAL tracerdyn ! for generic/mars physics call ; possibly to get rid of
     
    294303!      ALLOCATE(pcvgu(klon,llm), pcvgv(klon,llm))
    295304!      ALLOCATE(pcvgt(klon,llm), pcvgq(klon,llm,2))
    296       ALLOCATE(zdufi(klon,llm),zdvfi(klon,llm))
     305      ALLOCATE(zdufi(klon,llm),zdvfi(klon,llm),zrfi(klon,llm))
    297306      ALLOCATE(zdtfi(klon,llm),zdqfi(klon,llm,nqtot))
    298307      ALLOCATE(zdpsrf(klon))
     
    610619c$OMP END DO NOWAIT
    611620
    612 c   46.champ v:
     621c
     622C  Alvaro de la Camara (May 2014)
     623C  46.1 Calcul de la vorticite et passage sur la grille physique
     624C  --------------------------------------------------------------
     625
     626      jjb=jj_begin_dyn-1
     627      jje=jj_end_dyn+1
     628      if (is_north_pole) jjb=1
     629      if (is_south_pole) jje=jjm
     630
     631c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     632
     633      DO l=1,llm
     634        do i=1,iim
     635          do j=jjb,jje
     636            zrot(i,j,l) = (pvcov(i+1,j,l) - pvcov(i,j,l)
     637     $                   + pucov(i,j+1,l) - pucov(i,j,l))
     638     $                   / (cu(i,j)+cu(i,j+1))
     639     $                   / (cv(i+1,j)+cv(i,j)) *4
     640          enddo
     641        enddo
     642      ENDDO
     643
     644
     645c   46.2champ v:
    613646c   -----------
    614647
     
    623656     $                       + pvcov(i,j,l)/cv(i,j) )
    624657   
     658          if (j==1 .OR. j==jjp1) then !  AdlC MAY 2014
     659            zrfi(ig0,l) = 0 !  AdlC MAY 2014
     660          else
     661            if(i==1)then
     662            zrfi(ig0,l)= 0.25 *(zrot(iim,j-1,l)+zrot(iim,j,l)
     663     $                   +zrot(1,j-1,l)+zrot(1,j,l))   !  AdlC MAY 2014
     664            else
     665            zrfi(ig0,l)= 0.25 *(zrot(i-1,j-1,l)+zrot(i-1,j,l)
     666     $                   +zrot(i,j-1,l)+zrot(i,j,l))   !  AdlC MAY 2014
     667            endif
     668          endif
     669
     670
    625671         ENDDO
    626672      ENDDO
     
    648694           zufi(1,l)  = SSUM(iim,zcos,1)/pi
    649695           zvfi(1,l)  = SSUM(iim,zsin,1)/pi
     696           zrfi(1,l)  = 0.
    650697 
    651698        ENDDO
     
    675722           zufi(klon,l)  = SSUM(iim,zcos,1)/pi
    676723           zvfi(klon,l)  = SSUM(iim,zsin,1)/pi
     724           zrfi(klon,l)  = 0.
    677725        ENDDO
    678726c$OMP END DO NOWAIT       
     
    706754        allocate(zufi_omp(klon,llm))
    707755        allocate(zvfi_omp(klon,llm))
     756        allocate(zrfi_omp(klon,llm))  ! LG Ari 2014
    708757        allocate(ztfi_omp(klon,llm))
    709758        allocate(zqfi_omp(klon,llm,nqtot))
     
    775824      do l=1,llm
    776825        do i=1,klon
     826          zrfi_omp(i,l)=zrfi(offset+i,l)
     827        enddo
     828      enddo
     829       
     830       
     831      do l=1,llm
     832        do i=1,klon
    777833          ztfi_omp(i,l)=ztfi(offset+i,l)
    778834        enddo
     
    880936         lafin_split=lafin.and.isplit==nsplit_phys
    881937
    882 
    883       if (planet_type=="earth") then
    884         CALL physiq (klon,
    885      .             llm,
    886      .             debut_split,
    887      .             lafin_split,
    888      .             jD_cur,
    889      .             jH_cur_split,
    890      .             zdt_split,
    891      .             zplev_omp,
    892      .             zplay_omp,
    893      .             zphi_omp,
    894      .             zphis_omp,
    895      .             presnivs_omp,
    896      .             zufi_omp,
    897      .             zvfi_omp,
    898      .             ztfi_omp,
    899      .             zqfi_omp,
    900      .             flxwfi_omp,
    901      .             zdufi_omp,
    902      .             zdvfi_omp,
    903      .             zdtfi_omp,
    904      .             zdqfi_omp,
    905      .             zdpsrf_omp,
    906      .             pducov)
    907 
    908       else if ( planet_type=="generic" ) then
    909 
    910       CALL physiq (klon,     !! ngrid
    911      .             llm,            !! nlayer
    912      .             nqtot,          !! nq
    913      .             tname,          !! tracer names from dynamical core (given in infotrac)
    914      .             debut_split,    !! firstcall
    915      .             lafin_split,    !! lastcall
    916      .             jD_cur,         !! pday. see leapfrog_p
    917      .             jH_cur_split,   !! ptime "fraction of day"
    918      .             zdt_split,      !! ptimestep
    919      .             zplev_omp,  !! pplev
    920      .             zplay_omp,  !! pplay
    921      .             zphi_omp,   !! pphi
    922      .             zufi_omp,   !! pu
    923      .             zvfi_omp,   !! pv
    924      .             ztfi_omp,   !! pt
    925      .             zqfi_omp,   !! pq
    926      .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
    927      .             zdufi_omp,  !! pdu
    928      .             zdvfi_omp,  !! pdv
    929      .             zdtfi_omp,  !! pdt
    930      .             zdqfi_omp,  !! pdq
    931      .             zdpsrf_omp, !! pdpsrf
    932      .             tracerdyn)      !! tracerdyn <-- utilite ???
    933 
    934       else if ( planet_type=="mars" ) then
    935 
    936         CALL physiq (klon,       ! ngrid
    937      .             llm,          ! nlayer
    938      .             nqtot,        ! nq
    939      .             debut_split,  ! firstcall
    940      .             lafin_split,  ! lastcall
    941      .             jD_cur,       ! pday
    942      .             jH_cur_split, ! ptime
    943      .             zdt_split,    ! ptimestep
    944      .             zplev_omp,    ! pplev
    945      .             zplay_omp,    ! pplay
    946      .             zphi_omp,     ! pphi
    947      .             zufi_omp,     ! pu
    948      .             zvfi_omp,     ! pv
    949      .             ztfi_omp,     ! pt
    950      .             zqfi_omp,     ! pq
    951      .             flxwfi_omp,   ! pw
    952      .             zdufi_omp,    ! pdu
    953      .             zdvfi_omp,    ! pdv
    954      .             zdtfi_omp,    ! pdt
    955      .             zdqfi_omp,    ! pdq
    956      .             zdpsrf_omp,   ! pdpsrf
    957      .             tracerdyn)    ! tracerdyn (somewhat obsolete)
    958 
    959       else if ((planet_type=="titan").or.(planet_type=="venus")) then
    960 
    961         CALL physiq (klon,
    962      .             llm,
    963      .             nqtot,
    964      .             debut_split,
    965      .             lafin_split,
    966      .             jD_cur,
    967      .             jH_cur_split,
    968      .             zdt_split,
    969      .             zplev_omp,
    970      .             zplay_omp,
    971      .             zpk_omp,
    972      .             zphi_omp,
    973      .             zphis_omp,
    974      .             presnivs_omp,
    975      .             zufi_omp,
    976      .             zvfi_omp,
    977      .             ztfi_omp,
    978      .             zqfi_omp,
    979      .             flxwfi_omp,
    980      .             zdufi_omp,
    981      .             zdvfi_omp,
    982      .             zdtfi_omp,
    983      .             zdqfi_omp,
    984      .             zdpsrf_omp)
    985 
    986       else ! unknown "planet_type"
    987 
    988         write(lunout,*) "calfis_p: error, unknown planet_type: ",
    989      &                  trim(planet_type)
    990         stop
    991 
    992       endif ! planet_type
     938        CALL call_physiq(klon,llm,nqtot,tname,
     939     &                   debut_split,lafin_split,
     940     &                   jD_cur,jH_cur_split,zdt_split,
     941     &                   zplev_omp,zplay_omp,
     942     &                   zpk_omp,zphi_omp,zphis_omp,
     943     &                   presnivs_omp,
     944     &                   zufi_omp,zvfi_omp,zrfi_omp,ztfi_omp,zqfi_omp,
     945     &                   flxwfi_omp,pducov,
     946     &                   zdufi_omp,zdvfi_omp,zdtfi_omp,zdqfi_omp,
     947     &                   zdpsrf_omp,tracerdyn)
     948
     949!      if (planet_type=="earth") then
     950!        CALL physiq (klon,
     951!     .             llm,
     952!     .             debut_split,
     953!     .             lafin_split,
     954!     .             jD_cur,
     955!     .             jH_cur_split,
     956!     .             zdt_split,
     957!     .             zplev_omp,
     958!     .             zplay_omp,
     959!     .             zphi_omp,
     960!     .             zphis_omp,
     961!     .             presnivs_omp,
     962!     .             zufi_omp,
     963!     .             zvfi_omp,
     964!     .             ztfi_omp,
     965!     .             zqfi_omp,
     966!     .             flxwfi_omp,
     967!     .             zdufi_omp,
     968!     .             zdvfi_omp,
     969!     .             zdtfi_omp,
     970!     .             zdqfi_omp,
     971!     .             zdpsrf_omp,
     972!     .             pducov)
     973!
     974!      else if ( planet_type=="generic" ) then
     975!
     976!      CALL physiq (klon,     !! ngrid
     977!     .             llm,            !! nlayer
     978!     .             nqtot,          !! nq
     979!     .             tname,          !! tracer names from dynamical core (given in infotrac)
     980!     .             debut_split,    !! firstcall
     981!     .             lafin_split,    !! lastcall
     982!     .             jD_cur,         !! pday. see leapfrog_p
     983!     .             jH_cur_split,   !! ptime "fraction of day"
     984!     .             zdt_split,      !! ptimestep
     985!     .             zplev_omp,  !! pplev
     986!     .             zplay_omp,  !! pplay
     987!     .             zphi_omp,   !! pphi
     988!     .             zufi_omp,   !! pu
     989!     .             zvfi_omp,   !! pv
     990!     .             ztfi_omp,   !! pt
     991!     .             zqfi_omp,   !! pq
     992!     .             flxwfi_omp, !! pw !! or 0. anyway this is for diagnostic. not used in physiq.
     993!     .             zdufi_omp,  !! pdu
     994!     .             zdvfi_omp,  !! pdv
     995!     .             zdtfi_omp,  !! pdt
     996!     .             zdqfi_omp,  !! pdq
     997!     .             zdpsrf_omp, !! pdpsrf
     998!     .             tracerdyn)      !! tracerdyn <-- utilite ???
     999!
     1000!      else if ( planet_type=="mars" ) then
     1001!
     1002!        CALL physiq (klon,       ! ngrid
     1003!     .             llm,          ! nlayer
     1004!     .             nqtot,        ! nq
     1005!     .             debut_split,  ! firstcall
     1006!     .             lafin_split,  ! lastcall
     1007!     .             jD_cur,       ! pday
     1008!     .             jH_cur_split, ! ptime
     1009!     .             zdt_split,    ! ptimestep
     1010!     .             zplev_omp,    ! pplev
     1011!     .             zplay_omp,    ! pplay
     1012!     .             zphi_omp,     ! pphi
     1013!     .             zufi_omp,     ! pu
     1014!     .             zvfi_omp,     ! pv
     1015!     .             ztfi_omp,     ! pt
     1016!     .             zqfi_omp,     ! pq
     1017!     .             flxwfi_omp,   ! pw
     1018!     .             zdufi_omp,    ! pdu
     1019!     .             zdvfi_omp,    ! pdv
     1020!     .             zdtfi_omp,    ! pdt
     1021!     .             zdqfi_omp,    ! pdq
     1022!     .             zdpsrf_omp,   ! pdpsrf
     1023!     .             tracerdyn)    ! tracerdyn (somewhat obsolete)
     1024!
     1025!      else if ((planet_type=="titan").or.(planet_type=="venus")) then
     1026!
     1027!        CALL physiq (klon,
     1028!     .             llm,
     1029!     .             nqtot,
     1030!     .             debut_split,
     1031!     .             lafin_split,
     1032!     .             jD_cur,
     1033!     .             jH_cur_split,
     1034!     .             zdt_split,
     1035!     .             zplev_omp,
     1036!     .             zplay_omp,
     1037!     .             zpk_omp,
     1038!     .             zphi_omp,
     1039!     .             zphis_omp,
     1040!     .             presnivs_omp,
     1041!     .             zufi_omp,
     1042!     .             zvfi_omp,
     1043!     .             ztfi_omp,
     1044!     .             zqfi_omp,
     1045!     .             flxwfi_omp,
     1046!     .             zdufi_omp,
     1047!     .             zdvfi_omp,
     1048!     .             zdtfi_omp,
     1049!     .             zdqfi_omp,
     1050!     .             zdpsrf_omp)
     1051!
     1052!      else ! unknown "planet_type"
     1053!
     1054!        write(lunout,*) "calfis_p: error, unknown planet_type: ",
     1055!     &                  trim(planet_type)
     1056!        stop
     1057!
     1058!      endif ! planet_type
    9931059         zufi_omp(:,:)=zufi_omp(:,:)+zdufi_omp(:,:)*zdt_split
    9941060         zvfi_omp(:,:)=zvfi_omp(:,:)+zdvfi_omp(:,:)*zdt_split
  • trunk/LMDZ.COMMON/libf/misc/wxios.F90

    r1508 r1549  
    191191                CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "NoLeap")
    192192                IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier terrestre a 365 jours/an'
    193             CASE('earth_366d')
     193            CASE('gregorian')
    194194                CALL xios_set_context_attr_hdl(g_ctx, calendar_type= "Gregorian")
    195195                IF (prt_level >= 10) WRITE(lunout,*) 'wxios_set_cal: Calendrier gregorien'
  • trunk/LMDZ.GENERIC/README

    r1546 r1549  
    12151215  mass flux should be on the physics grid, not the dynamics grid.
    12161216  Moreover values at the poles needed to be correctly recomputed.
     1217
     1218== 06/05/2016 == EM
     1219- turn physiq.F90 into module physiq_mod.F90
  • trunk/LMDZ.GENERIC/libf/dynphy_lonlat/calfis.F

    r1546 r1549  
    99      USE comvert_mod, ONLY: preff
    1010      USE comconst_mod, ONLY: dtphys,kappa,cpp,pi
     11      USE physiq_mod, ONLY: physiq
     12
    1113      IMPLICIT NONE
    1214c=======================================================================
     
    130132     
    131133      EXTERNAL gr_dyn_fi,gr_fi_dyn
    132       EXTERNAL physiq,multipl
    133134      REAL SSUM
    134135      EXTERNAL SSUM
  • trunk/LMDZ.GENERIC/libf/phystd/dyn1d/rcm1d.F

    r1543 r1549  
    3232      use mod_interface_dyn_phys, only: init_interface_dyn_phys
    3333      use inifis_mod, only: inifis
     34      use physiq_mod, only: physiq
    3435      implicit none
    3536
     
    9697      REAL du(llm),dv(llm),dtemp(llm)
    9798      REAL dudyn(llm),dvdyn(llm),dtempdyn(llm)
    98       REAL dpsurf   
     99      REAL dpsurf(1)   
    99100      REAL,ALLOCATABLE :: dq(:,:)
    100101      REAL,ALLOCATABLE :: dqdyn(:,:)
     
    949950c       ----------------------------------------------------------
    950951
    951            psurf=psurf+dtphys*dpsurf   ! evolution de la pression de surface
     952           psurf=psurf+dtphys*dpsurf(1)   ! evolution de la pression de surface
    952953           DO ilevel=1,nlevel
    953954              plev(ilevel)=ap(ilevel)+psurf*bp(ilevel)
  • trunk/LMDZ.GENERIC/libf/phystd/physiq_mod.F90

    r1548 r1549  
     1      module physiq_mod
     2     
     3      implicit none
     4     
     5      contains
     6     
    17      subroutine physiq(ngrid,nlayer,nq,   &
    28                  nametrac,                &
     
    21322138
    21332139    end subroutine physiq
     2140   
     2141    end module physiq_mod
  • trunk/LMDZ.MARS/README

    r1547 r1549  
    22872287  Moreover values at the poles needed to be correctly recomputed.
    22882288
     2289== 06/05/2016 == EM
     2290- turn physiq.F into module physiq_mod.F
  • trunk/LMDZ.MARS/libf/dynphy_lonlat/calfis.F

    r1547 r1549  
    99      USE comvert_mod, ONLY: preff
    1010      USE comconst_mod, ONLY: dtphys,cpp,kappa,pi
     11      USE physiq_mod, ONLY: physiq
    1112
    1213      IMPLICIT NONE
     
    128129     
    129130      EXTERNAL gr_dyn_fi,gr_fi_dyn
    130       EXTERNAL physiq,multipl
    131131      REAL SSUM
    132132      EXTERNAL SSUM
  • trunk/LMDZ.MARS/libf/phymars/dyn1d/testphys1d.F

    r1543 r1549  
    2727      use mod_interface_dyn_phys, only: init_interface_dyn_phys
    2828      USE phys_state_var_init_mod, ONLY: phys_state_var_init
     29      USE physiq_mod, ONLY: physiq
    2930      IMPLICIT NONE
    3031
     
    9596      REAL du(nlayer),dv(nlayer),dtemp(nlayer)
    9697      REAL dudyn(nlayer),dvdyn(nlayer),dtempdyn(nlayer)
    97       REAL dpsurf   
     98      REAL dpsurf(1)   
    9899      REAL,ALLOCATABLE :: dq(:,:)
    99100      REAL,ALLOCATABLE :: dqdyn(:,:)
     
    792793c       ----------------------------------------------------------
    793794
    794            psurf=psurf+dtphys*dpsurf   ! surface pressure change
     795           psurf=psurf+dtphys*dpsurf(1)   ! surface pressure change
    795796           DO ilevel=1,nlevel
    796797             plev(ilevel)=ap(ilevel)+psurf*bp(ilevel)
  • trunk/LMDZ.MARS/libf/phymars/physiq_mod.F

    r1548 r1549  
     1      MODULE physiq_mod
     2
     3      IMPLICIT NONE
     4
     5      CONTAINS
     6
    17      SUBROUTINE physiq(
    28     $            ngrid,nlayer,nq
     
    26392645
    26402646      icount=icount+1
    2641       RETURN
    2642       END
     2647
     2648      END SUBROUTINE physiq
     2649
     2650      END MODULE physiq_mod
  • trunk/LMDZ.TITAN/libf/phytitan/dyn1d/rcm1d.F

    r1548 r1549  
    1313      USE iniphysiq_mod, ONLY: iniphysiq
    1414      USE mod_const_mpi, ONLY: comm_lmdz
     15      USE physiq_mod, ONLY: physiq
    1516      IMPLICIT NONE
    1617
     
    6768      REAL du(llm),dv(llm),dtemp(llm)
    6869      REAL dudyn(llm),dvdyn(llm),dtempdyn(llm)
    69       REAL dpsurf   
     70      REAL dpsurf(1)   
    7071      REAL,allocatable :: dq(:,:)
    7172
     
    439440c       ----------------------------------------------------------
    440441
    441            psurf=psurf+dtphys*dpsurf   ! evolution de la pression de surface
     442           psurf=psurf+dtphys*dpsurf(1)   ! evolution de la pression de surface
    442443           DO ilevel=1,nlevel
    443444             plev(ilevel)=ap(ilevel)+psurf*bp(ilevel)
  • trunk/LMDZ.TITAN/libf/phytitan/physiq_mod.F

    r1548 r1549  
    11!
    2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/physiq.F,v 1.8 2005/02/24 09:58:18 fairhead Exp $
     2! $Id: $
    33!
    4 c
     4      MODULE physiq_mod
     5
     6      IMPLICIT NONE
     7
     8      CONTAINS
     9
    510      SUBROUTINE physiq (nlon,nlev,nqmax,
    611     .            debut,lafin,rjourvrai,gmtime,pdtphys,
     
    16221627      ENDIF
    16231628     
    1624       RETURN
    1625       END
    1626 
    1627 
    1628 
    1629 ***********************************************************************
    1630 ***********************************************************************
    1631 ***********************************************************************
    1632 ***********************************************************************
    1633 ***********************************************************************
    1634 ***********************************************************************
    1635 ***********************************************************************
    1636 ***********************************************************************
    1637 
    1638       SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit)
    1639       IMPLICIT none
    1640 c
    1641 c Tranformer une variable de la grille physique a
    1642 c la grille d'ecriture
    1643 c
    1644       INTEGER nfield,nlon,iim,jjmp1, jjm
    1645       REAL fi(nlon,nfield), ecrit(iim*jjmp1,nfield)
    1646 c
    1647       INTEGER i, n, ig
    1648 c
    1649       jjm = jjmp1 - 1
    1650       DO n = 1, nfield
    1651          DO i=1,iim
    1652             ecrit(i,n) = fi(1,n)
    1653             ecrit(i+jjm*iim,n) = fi(nlon,n)
    1654          ENDDO
    1655          DO ig = 1, nlon - 2
    1656            ecrit(iim+ig,n) = fi(1+ig,n)
    1657          ENDDO
    1658       ENDDO
    1659       RETURN
    1660       END
     1629      END SUBROUTINE physiq
     1630
     1631      END MODULE physiq_mod
     1632
  • trunk/LMDZ.VENUS/libf/phyvenus/dyn1d/rcm1d.F

    r1543 r1549  
    1414      USE iniphysiq_mod, ONLY: iniphysiq
    1515      USE mod_const_mpi, ONLY: comm_lmdz
     16      USE physiq_mod, ONLY: physiq
    1617      IMPLICIT NONE
    1718
     
    6869      REAL du(llm),dv(llm),dtemp(llm)
    6970      REAL dudyn(llm),dvdyn(llm),dtempdyn(llm)
    70       REAL dpsurf   
     71      REAL dpsurf(1)   
    7172      REAL,allocatable :: dq(:,:)
    7273
     
    449450c       ----------------------------------------------------------
    450451
    451            psurf=psurf+dtphys*dpsurf   ! evolution de la pression de surface
     452           psurf=psurf+dtphys*dpsurf(1)   ! evolution de la pression de surface
    452453           DO ilevel=1,nlevel
    453454             plev(ilevel)=ap(ilevel)+psurf*bp(ilevel)
  • trunk/LMDZ.VENUS/libf/phyvenus/physiq_mod.F

    r1548 r1549  
    11!
    2 ! $Header: /home/cvsroot/LMDZ4/libf/phylmd/physiq.F,v 1.8 2005/02/24 09:58:18 fairhead Exp $
     2! $Id: $
    33!
    4 c
     4      MODULE physiq_mod
     5
     6      IMPLICIT NONE
     7
     8      CONTAINS
     9
    510      SUBROUTINE physiq (nlon,nlev,nqmax,
    611     .            debut,lafin,rjourvrai,gmtime,pdtphys,
     
    17671772      ENDIF
    17681773     
    1769       RETURN
    1770       END
    1771 
    1772 
    1773 
    1774 ***********************************************************************
    1775 ***********************************************************************
    1776 ***********************************************************************
    1777 ***********************************************************************
    1778 ***********************************************************************
    1779 ***********************************************************************
    1780 ***********************************************************************
    1781 ***********************************************************************
    1782 
    1783       SUBROUTINE gr_fi_ecrit(nfield,nlon,iim,jjmp1,fi,ecrit)
    1784       IMPLICIT none
    1785 c
    1786 c Tranformer une variable de la grille physique a
    1787 c la grille d'ecriture
    1788 c
    1789       INTEGER nfield,nlon,iim,jjmp1, jjm
    1790       REAL fi(nlon,nfield), ecrit(iim*jjmp1,nfield)
    1791 c
    1792       INTEGER i, n, ig
    1793 c
    1794       jjm = jjmp1 - 1
    1795       DO n = 1, nfield
    1796          DO i=1,iim
    1797             ecrit(i,n) = fi(1,n)
    1798             ecrit(i+jjm*iim,n) = fi(nlon,n)
    1799          ENDDO
    1800          DO ig = 1, nlon - 2
    1801            ecrit(iim+ig,n) = fi(1+ig,n)
    1802          ENDDO
    1803       ENDDO
    1804       RETURN
    1805       END
     1774      END SUBROUTINE physiq
     1775
     1776      END MODULE physiq_mod
     1777
Note: See TracChangeset for help on using the changeset viewer.