Changeset 1763 for LMDZ5/trunk


Ignore:
Timestamp:
Jun 4, 2013, 12:47:19 PM (11 years ago)
Author:
Laurent Fairhead
Message:

In 1DUTILS.h disvert renamed disvert0.
There are now 2 routines to get a vertical grid: disvert0 or disvert (../dyn3d/disvert.F90).
The new flag ok_old_disvert allows the use of either disvert0 (ok_old_disvert=y) or disvert (ok_old_disvert=n)

In lmdz1d.F: rlat_rad and rlon_rad for coordinates in radians, cfdt ans sfdt concern the geostrophic wind

Location:
LMDZ5/trunk/libf/phy1d
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phy1d/1DUTILS.h_no_writelim

    r1702 r1763  
    125125       ok_flux_surf = .FALSE.
    126126       CALL getin('ok_flux_surf',ok_flux_surf)
     127
     128!Config  Key  = ok_old_disvert
     129!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     130!Config  Def  = false
     131!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     132       ok_old_disvert = .FALSE.
     133       CALL getin('ok_old_disvert',ok_old_disvert)
    127134
    128135!Config  Key  = time_ini
     
    956963      END
    957964 
    958       SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
     965      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
    959966 
    960967!    Auteur :  P. Le Van .
  • LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim

    r1702 r1763  
    125125       ok_flux_surf = .FALSE.
    126126       CALL getin('ok_flux_surf',ok_flux_surf)
     127
     128!Config  Key  = ok_old_disvert
     129!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     130!Config  Def  = false
     131!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     132       ok_old_disvert = .FALSE.
     133       CALL getin('ok_old_disvert',ok_old_disvert)
    127134
    128135!Config  Key  = time_ini
     
    10791086 
    10801087!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1081       SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
     1088      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
    10821089 
    10831090!    Auteur :  P. Le Van .
  • LMDZ5/trunk/libf/phy1d/1DUTILS.h_with_writelim_old

    r1702 r1763  
    125125       ok_flux_surf = .FALSE.
    126126       CALL getin('ok_flux_surf',ok_flux_surf)
     127
     128!Config  Key  = ok_old_disvert
     129!Config  Desc = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     130!Config  Def  = false
     131!Config  Help = utilisation de l ancien programme disvert0 (dans 1DUTILS.h)
     132       ok_old_disvert = .FALSE.
     133       CALL getin('ok_old_disvert',ok_old_disvert)
    127134
    128135!Config  Key  = time_ini
     
    10791086 
    10801087!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    1081       SUBROUTINE disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
     1088      SUBROUTINE disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
    10821089 
    10831090!    Auteur :  P. Le Van .
  • LMDZ5/trunk/libf/phy1d/lmdz1d.F

    r1739 r1763  
    137137      integer :: iq
    138138      real :: phi(llm)
     139      real :: rlat_rad(1),rlon_rad(1)
    139140      real :: teta(llm),temp(llm),u(llm),v(llm)
    140141      real :: omega(llm+1),omega2(llm),rho(llm+1)
    141142      real :: ug(llm),vg(llm),fcoriolis
     143      real :: sfdt, cfdt
    142144      real :: du_phys(llm),dv_phys(llm),dt_phys(llm)
    143145      real :: du_dyn(llm),dv_dyn(llm),dt_dyn(llm)
     
    418420!!      preff= 1.01325e5
    419421      preff = psurf
    420       call disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
     422      IF (ok_old_disvert) THEN
     423        call disvert0(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig)
     424        print *,'On utilise disvert0'
     425      ELSE
     426        call disvert(pa,preff,ap,bp,dpres,presnivs,nivsigs,nivsig,
     427     :                 scaleheight)
     428        print *,'On utilise disvert'
     429c       Nouvelle version disvert permettant d imposer ap,bp (modif L.Guez) MPL 18092012
     430c       Dans ce cas, on lit ap,bp dans le fichier hybrid.txt
     431      ENDIF
    421432      sig_s=presnivs/preff
    422433      plev =ap+bp*psurf
     
    460471! rday: defini dans suphel.F (86400.)
    461472! day_ini: lu dans run.def (dayref)
    462 ! rlat,rlon lus dans lmdz1d.def
     473! rlat_rad,rlon-rad: transformes en radian de rlat,rlon lus dans lmdz1d.def (en degres)
    463474! airefi,zcufi,zcvfi initialises au debut de ce programme
    464475! rday,ra,rg,rd,rcpd declares dans YOMCST.h et calcules dans suphel.F
     
    470481      zcufi=airefi
    471482      zcvfi=airefi
     483!
     484      rlat_rad(:)=rlat(:)*rpi/180.
     485      rlon_rad(:)=rlon(:)*rpi/180.
    472486
    473487      call iniphysiq(ngrid,llm,rday,day_ini,timestep,
    474      .     rlat,rlon,airefi,zcufi,zcvfi,ra,rg,rd,rcpd,1)
     488     .     rlat_rad,rlon_rad,airefi,zcufi,zcvfi,ra,rg,rd,rcpd,(/1/))
    475489      print*,'apres iniphysiq'
    476490
     
    748762     : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc))
    749763
     764!!!!!!!!!!!!!!!!!!!!!!!!
     765! Geostrophic wind
     766!!!!!!!!!!!!!!!!!!!!!!!!
     767       sfdt = sin(0.5*fcoriolis*timestep)
     768       cfdt = cos(0.5*fcoriolis*timestep)
     769!
     770        du_age(1:mxcalc)= -2.*sfdt/timestep*
     771     :          (sfdt*(u(1:mxcalc)-ug(1:mxcalc)) -
     772     :           cfdt*(v(1:mxcalc)-vg(1:mxcalc))  )
     773!!     : fcoriolis*(v(1:mxcalc)-vg(1:mxcalc))
     774!
     775       dv_age(1:mxcalc)= -2.*sfdt/timestep*
     776     :          (cfdt*(u(1:mxcalc)-ug(1:mxcalc)) +
     777     :           sfdt*(v(1:mxcalc)-vg(1:mxcalc))  )
     778!!     : -fcoriolis*(u(1:mxcalc)-ug(1:mxcalc))
     779!
     780!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     781!         call  writefield_phy('dv_age' ,dv_age,llm)
     782!         call  writefield_phy('du_age' ,du_age,llm)
     783!         call  writefield_phy('du_phys' ,du_phys,llm)
     784!         call  writefield_phy('u_tend' ,u,llm)
     785!         call  writefield_phy('u_g' ,ug,llm)
     786!
     787!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     788!! Increment state variables
     789!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    750790        u(1:mxcalc)=u(1:mxcalc) + timestep*(
    751791     :              du_phys(1:mxcalc)
Note: See TracChangeset for help on using the changeset viewer.