/[lmdze]/trunk/dyn3d/gcm.f
ViewVC logotype

Diff of /trunk/dyn3d/gcm.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 134 by guez, Wed Apr 29 15:47:56 2015 UTC revision 191 by guez, Mon May 9 19:56:28 2016 UTC
# Line 3  PROGRAM gcm Line 3  PROGRAM gcm
3    ! Authors: P. Le Van, L. Fairhead, F. Hourdin    ! Authors: P. Le Van, L. Fairhead, F. Hourdin
4    ! From "gcm.F", version 1.4, 2006/04/04 15:05:16    ! From "gcm.F", version 1.4, 2006/04/04 15:05:16
5    
6    ! General circulation model of LMD. Avec coordonnée verticale    ! General circulation model of LMD. Avec coordonn\'ee verticale
7    ! hybride, avec nouveaux opérateurs de dissipation "*" ("gradiv2",    ! hybride, avec nouveaux op\'erateurs de dissipation "*" ("gradiv2",
8    ! "divgrad2", "nxgraro2"). Possibilité de choisir le schéma pour    ! "divgrad2", "nxgraro2"). Possibilit\'e de choisir le sch\'ema pour
9    ! l'advection de "q", en modifiant "iadv" dans "traceur.def".    ! l'advection de "q", en modifiant "iadv" dans "traceur.def".
10    
11    use comconst, only: daysec, dtvr, iniconst    use comconst, only: daysec, dtvr, iniconst
12    use comgeom, only: rlatu, aire_2d, cu_2d, cv_2d, rlonv, inigeom    use comdissnew, only: read_comdissnew
13    use comgeomphy, only: airephy, cuphy, cvphy, rlatd, rlond    use comgeom, only:  aire_2d, inigeom
14      use comgeomphy, only: airephy
15    use conf_gcm_m, only: day_step, iperiod, iecri, iphysiq, nday, periodav, &    use conf_gcm_m, only: day_step, iperiod, iecri, iphysiq, nday, periodav, &
16         conf_gcm, iflag_phys         conf_gcm, iflag_phys
17    use conf_guide_m, only: conf_guide    use conf_guide_m, only: conf_guide
18    use dimens_m, only: iim, jjm, llm, nqmx    use dimens_m, only: iim, jjm, llm, nqmx
   use dimphy, only: klon  
19    USE disvert_m, ONLY : disvert    USE disvert_m, ONLY : disvert
20    use dynetat0_m, only: dynetat0, day_ini    use dynetat0_m, only: dynetat0, day_ini
21    use dynredem0_m, only: dynredem0    use dynredem0_m, only: dynredem0
# Line 41  PROGRAM gcm Line 41  PROGRAM gcm
41    
42    ! Variables dynamiques :    ! Variables dynamiques :
43    REAL ucov(iim + 1, jjm + 1, llm), vcov(iim + 1, jjm, llm)  ! vent covariant    REAL ucov(iim + 1, jjm + 1, llm), vcov(iim + 1, jjm, llm)  ! vent covariant
44    REAL teta(iim + 1, jjm + 1, llm) ! température potentielle    REAL teta(iim + 1, jjm + 1, llm) ! temp\'erature potentielle
45    REAL q(iim + 1, jjm + 1, llm, nqmx) ! champs advectés    REAL q(iim + 1, jjm + 1, llm, nqmx) ! champs advect\'es
46    REAL ps(iim + 1, jjm + 1) ! pression au sol (Pa)    REAL ps(iim + 1, jjm + 1) ! pression au sol (Pa)
47    REAL masse(iim + 1, jjm + 1, llm) ! masse d'air    REAL masse(iim + 1, jjm + 1, llm) ! masse d'air
48    REAL phis(iim + 1, jjm + 1) ! géopotentiel au sol    REAL phis(iim + 1, jjm + 1) ! g\'eopotentiel au sol
49    
   ! Calendrier :  
50    LOGICAL:: true_calendar = .false. ! default value    LOGICAL:: true_calendar = .false. ! default value
   
   logical mask_v(iim + 1, jjm)  
   ! (mask for points in the "v" grid, first index is for longitude,  
   ! second index is for latitude)  
   
51    integer i    integer i
52    
53    namelist /main_nml/true_calendar    namelist /main_nml/true_calendar
# Line 64  PROGRAM gcm Line 58  PROGRAM gcm
58    open(unit_nml, file="used_namelists.txt", status="replace", action="write")    open(unit_nml, file="used_namelists.txt", status="replace", action="write")
59    
60    CALL conf_gcm    CALL conf_gcm
61      call read_comdissnew
62    
63    print *, "Enter namelist 'main_nml'."    print *, "Enter namelist 'main_nml'."
64    read (unit=*, nml=main_nml)    read (unit=*, nml=main_nml)
# Line 80  PROGRAM gcm Line 75  PROGRAM gcm
75    CALL iniconst    CALL iniconst
76    CALL dynetat0(vcov, ucov, teta, q, masse, ps, phis)    CALL dynetat0(vcov, ucov, teta, q, masse, ps, phis)
77    CALL disvert    CALL disvert
78    CALL inigeom ! initialisation de la géometrie    CALL inigeom ! initialisation de la g\'eometrie
79    CALL inifilr ! initialisation du filtre    CALL inifilr ! initialisation du filtre
80    CALL inidissip    CALL inidissip
81    call init_dyn_phy    call init_dyn_phy
82    
83    ! Initialisation de la physique :    ! Initialisation de la physique :
84    IF (iflag_phys == 1) THEN    IF (iflag_phys == 1) THEN
      rlatd(1)=rlatu(1)  
      rlatd(2:klon-1) = pack(spread(rlatu(2:jjm), 1, iim), .true.)  
      rlatd(klon)= rlatu(jjm + 1)  
   
      rlond(1)=0.  
      rlond(2:klon-1) = pack(spread(rlonv(:iim), 2, jjm - 1), .true.)  
      rlond(klon)= 0.  
   
      cuphy = pack(cu_2d, dyn_phy)  
   
      ! Construct a mask for points in the "v" grid:  
      mask_v = .true.  
      mask_v(2:, 1) = .false.  
      mask_v(iim + 1, 2:) = .false.  
   
      cvphy(:klon - 1) = pack(cv_2d, mask_v)  
      cvphy(klon) = cv_2d(1, jjm)  
      ! (that value of "cv_2d" is used twice in "cvphy")  
   
85       airephy = pack(aire_2d, dyn_phy)       airephy = pack(aire_2d, dyn_phy)
86       CALL suphec       CALL suphec
87       call yoethf       call yoethf
88    ENDIF    ENDIF
89    
90    ! Initialisation des entrées-sorties :    ! Initialisation des entr\'ees-sorties :
91    CALL dynredem0("restart.nc", day_ini + nday, phis)    CALL dynredem0(day_ini + nday, phis)
92    CALL inithist(dtvr, nqmx, t_ops = iecri * daysec, t_wrt = iecri * daysec)    CALL inithist(dtvr, nqmx, t_ops = iecri * daysec, t_wrt = iecri * daysec)
93    CALL initdynav(dtvr, nqmx, t_ops = iperiod * dtvr, t_wrt = periodav * daysec)    CALL initdynav(dtvr, nqmx, t_ops = iperiod * dtvr, t_wrt = periodav * daysec)
94    call init_dynzon(dt_app = dtvr * iperiod)    call init_dynzon(dt_app = dtvr * iperiod)
95    
96    ! Choix des fréquences de stockage pour le hors-ligne :    ! Choix des fr\'equences de stockage pour le hors-ligne :
97    istdyn = day_step / 4 ! stockage toutes les 6 h = 1 jour / 4    istdyn = day_step / 4 ! stockage toutes les 6 h = 1 jour / 4
98    istphy = istdyn / iphysiq        istphy = istdyn / iphysiq    
99    

Legend:
Removed from v.134  
changed lines
  Added in v.191

  ViewVC Help
Powered by ViewVC 1.1.21