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

Contents of /trunk/dyn3d/gcm.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 265 - (show annotations)
Tue Mar 20 09:35:59 2018 UTC (6 years, 1 month ago) by guez
File size: 3114 byte(s)
Rename module dimens_m to dimensions.
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: 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, conf_gcm, &
16 iflag_phys
17 use conf_guide_m, only: conf_guide
18 use dimensions, 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 inithist_m, only: inithist
28 use init_dynzon_m, only: init_dynzon
29 USE ioconf_calendar_m, only: ioconf_calendar
30 use jumble, only: new_unit
31 use leapfrog_m, only: leapfrog
32 use netcdf95, only: nf95_close
33 use suphec_m, only: suphec
34 use unit_nml_m, only: unit_nml
35 use yoethf_m, only: yoethf
36 use createnewfield_m, only: NbField, Ncid
37
38 IMPLICIT NONE
39
40 ! Variables dynamiques :
41 REAL ucov(iim + 1, jjm + 1, llm), vcov(iim + 1, jjm, llm) ! vent covariant
42 REAL teta(iim + 1, jjm + 1, llm) ! temp\'erature potentielle
43 REAL q(iim + 1, jjm + 1, llm, nqmx) ! champs advect\'es
44 REAL ps(iim + 1, jjm + 1) ! pression au sol (Pa)
45 REAL masse(iim + 1, jjm + 1, llm) ! masse d'air
46 REAL phis(iim + 1, jjm + 1) ! g\'eopotentiel au sol
47
48 LOGICAL:: true_calendar = .false. ! default value
49 integer i
50
51 namelist /main_nml/true_calendar
52
53 !------------------------------------------------------------
54
55 call new_unit(unit_nml)
56 open(unit_nml, file="used_namelists.txt", status="replace", action="write")
57
58 CALL conf_gcm
59 call read_comdissnew
60
61 print *, "Enter namelist 'main_nml'."
62 read (unit=*, nml=main_nml)
63 write(unit_nml, nml=main_nml)
64
65 ! Choix du calendrier :
66 if (true_calendar) then
67 call ioconf_calendar('gregorian')
68 else
69 call ioconf_calendar('360d')
70 endif
71
72 call iniadvtrac
73 CALL iniconst
74 CALL dynetat0(vcov, ucov, teta, q, masse, ps, phis)
75 CALL disvert
76 CALL inigeom ! initialisation de la g\'eometrie
77 CALL inifilr ! initialisation du filtre
78 CALL inidissip
79 call init_dyn_phy
80
81 ! Initialisation de la physique :
82 IF (iflag_phys) THEN
83 airephy = pack(aire_2d, dyn_phy)
84 CALL suphec
85 call yoethf
86 ENDIF
87
88 ! Initialisation des entr\'ees-sorties :
89 CALL dynredem0(day_ini + nday, phis)
90 CALL inithist(t_ops = iecri * dtvr, t_wrt = iecri * dtvr)
91 call init_dynzon(dt_app = dtvr * iperiod)
92
93 CALL conf_guide
94 CALL leapfrog(ucov, vcov, teta, ps, masse, phis, q)
95
96 close(unit_nml)
97 call histclo
98
99 do i = 1, nbfield
100 call nf95_close(Ncid(i))
101 end do
102
103 print *, 'Simulation finished'
104 print *, 'Everything is cool'
105
106 END PROGRAM gcm

  ViewVC Help
Powered by ViewVC 1.1.21