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

Contents of /trunk/dyn3d/gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 224 - (show annotations)
Fri Apr 28 13:40:59 2017 UTC (7 years ago) by guez
Original Path: trunk/Sources/dyn3d/gcm.f
File size: 3261 byte(s)
offline allows to save variables for another run with offline
transport, but there is no provision for this other run with offline
transport in LMDZE. The procedures read_pstoke and read_pstoke0 in
LMDZ are never called. So removed the possibility offline = T.

1 PROGRAM gcm
2
3 ! Authors: P. Le Van, L. Fairhead, F. Hourdin
4 ! From "gcm.F", version 1.4, 2006/04/04 15:05:16
5
6 ! General circulation model of LMD. Avec coordonn\'ee verticale
7 ! hybride, avec nouveaux op\'erateurs de dissipation "*" ("gradiv2",
8 ! "divgrad2", "nxgraro2"). Possibilit\'e de choisir le sch\'ema pour
9 ! l'advection de "q", en modifiant "iadv" dans "traceur.def".
10
11 use comconst, only: daysec, dtvr, iniconst
12 use comdissnew, only: read_comdissnew
13 use comgeom, only: aire_2d, inigeom
14 use comgeomphy, only: airephy
15 use conf_gcm_m, only: day_step, iperiod, iecri, iphysiq, nday, periodav, &
16 conf_gcm, iflag_phys
17 use conf_guide_m, only: conf_guide
18 use dimens_m, only: iim, jjm, llm, nqmx
19 USE disvert_m, ONLY : disvert
20 use dynetat0_m, only: dynetat0, day_ini
21 use dynredem0_m, only: dynredem0
22 use grid_change, only: dyn_phy, init_dyn_phy
23 use histclo_m, only: histclo
24 use iniadvtrac_m, only: iniadvtrac
25 use inidissip_m, only: inidissip
26 use inifilr_m, only: inifilr
27 use initdynav_m, only: initdynav
28 use inithist_m, only: inithist
29 use init_dynzon_m, only: init_dynzon
30 USE ioconf_calendar_m, only: ioconf_calendar
31 use jumble, only: new_unit
32 use leapfrog_m, only: leapfrog
33 use netcdf95, only: nf95_close
34 use suphec_m, only: suphec
35 use unit_nml_m, only: unit_nml
36 use yoethf_m, only: yoethf
37 use createnewfield_m, only: NbField, Ncid
38
39 IMPLICIT NONE
40
41 ! Variables dynamiques :
42 REAL ucov(iim + 1, jjm + 1, llm), vcov(iim + 1, jjm, llm) ! vent covariant
43 REAL teta(iim + 1, jjm + 1, llm) ! temp\'erature potentielle
44 REAL q(iim + 1, jjm + 1, llm, nqmx) ! champs advect\'es
45 REAL ps(iim + 1, jjm + 1) ! pression au sol (Pa)
46 REAL masse(iim + 1, jjm + 1, llm) ! masse d'air
47 REAL phis(iim + 1, jjm + 1) ! g\'eopotentiel au sol
48
49 LOGICAL:: true_calendar = .false. ! default value
50 integer i
51
52 namelist /main_nml/true_calendar
53
54 !------------------------------------------------------------
55
56 call new_unit(unit_nml)
57 open(unit_nml, file="used_namelists.txt", status="replace", action="write")
58
59 CALL conf_gcm
60 call read_comdissnew
61
62 print *, "Enter namelist 'main_nml'."
63 read (unit=*, nml=main_nml)
64 write(unit_nml, nml=main_nml)
65
66 ! Choix du calendrier :
67 if (true_calendar) then
68 call ioconf_calendar('gregorian')
69 else
70 call ioconf_calendar('360d')
71 endif
72
73 call iniadvtrac
74 CALL iniconst
75 CALL dynetat0(vcov, ucov, teta, q, masse, ps, phis)
76 CALL disvert
77 CALL inigeom ! initialisation de la g\'eometrie
78 CALL inifilr ! initialisation du filtre
79 CALL inidissip
80 call init_dyn_phy
81
82 ! Initialisation de la physique :
83 IF (iflag_phys) THEN
84 airephy = pack(aire_2d, dyn_phy)
85 CALL suphec
86 call yoethf
87 ENDIF
88
89 ! Initialisation des entr\'ees-sorties :
90 CALL dynredem0(day_ini + nday, phis)
91 CALL inithist(dtvr, nqmx, t_ops = iecri * daysec, t_wrt = iecri * daysec)
92 CALL initdynav(dtvr, nqmx, t_ops = iperiod * dtvr, t_wrt = periodav * daysec)
93 call init_dynzon(dt_app = dtvr * iperiod)
94
95 CALL conf_guide
96 CALL leapfrog(ucov, vcov, teta, ps, masse, phis, q)
97
98 close(unit_nml)
99 call histclo
100
101 do i = 1, nbfield
102 call nf95_close(Ncid(i))
103 end do
104
105 print *, 'Simulation finished'
106 print *, 'Everything is cool'
107
108 END PROGRAM gcm

  ViewVC Help
Powered by ViewVC 1.1.21