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

Contents of /trunk/dyn3d/init_dynzon.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 92 - (show annotations)
Wed Mar 26 18:16:05 2014 UTC (10 years, 1 month ago) by guez
File size: 4018 byte(s)
Extracted procedures that were in module calendar into separate files.

1 module init_dynzon_m
2
3 IMPLICIT NONE
4
5 integer, parameter:: ntr = 5
6 integer, parameter:: nQ = 7
7 integer ncum, fileid
8 character(len=10) znom(ntr, nQ)
9 character(len=4), parameter:: nom(nQ) = (/'T ', 'gz ', 'K ', 'ang ', &
10 'u ', 'ovap', 'un '/)
11
12 contains
13
14 SUBROUTINE init_dynzon(dt_app)
15
16 ! From LMDZ4/libf/dyn3d/bilan_dyn.F, version 1.5 2005/03/16 10:12:17
17
18 USE comgeom, ONLY: rlatv
19 USE conf_gcm_m, ONLY: day_step, iperiod, periodav
20 USE dimens_m, ONLY: jjm, llm
21 USE disvert_m, ONLY: presnivs
22 USE histbeg_totreg_m, ONLY: histbeg_totreg
23 USE histdef_m, ONLY: histdef
24 USE histend_m, ONLY: histend
25 USE histvert_m, ONLY: histvert
26 USE nr_util, ONLY: pi
27 USE temps, ONLY: annee_ref, day_ref, itau_dyn
28 USE ymds2ju_m, ONLY: ymds2ju
29
30 real, intent(in):: dt_app
31
32 ! Local:
33
34 real dt_cum
35 character(len=5), parameter:: unites(nQ) = (/'K ', 'm2/s2', 'm2/s2', &
36 'ang ', 'm/s ', 'kg/kg', 'un '/)
37
38 ! Champs de tansport en moyenne zonale
39 integer itr
40 character(len=26) noml(ntr, nQ)
41 character(len=12) zunites(ntr, nQ)
42 character(len=3), parameter:: ctrs(ntr) = (/' ', 'TOT', 'MMC', 'TRS', &
43 'STN'/)
44 integer iQ
45
46 ! Initialisation du fichier contenant les moyennes zonales.
47
48 integer horiid, vertiid
49 real julian
50 integer an, dayref
51 real rlong(jjm), rlatg(jjm)
52
53 !-----------------------------------------------------------------
54
55 print *, "Call sequence information: init_dynzon"
56
57 ! Initialisation des fichiers
58 ! ncum est la frequence de stokage en pas de temps
59 ncum = day_step / iperiod * periodav
60 dt_cum = ncum * dt_app
61
62 ! Initialisation du fichier contenant les moyennes zonales
63
64 an = annee_ref
65 dayref = day_ref
66 CALL ymds2ju(an, 1, dayref, 0.0, julian)
67
68 rlong = 0.
69 rlatg = rlatv * 180. / pi
70
71 call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &
72 julian, dt_cum, horiid, fileid)
73
74 ! Appel à histvert pour la grille verticale
75
76 call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', presnivs, vertiid)
77
78 ! Appels à histdef pour la définition des variables à sauvegarder
79 do iQ = 1, nQ
80 do itr = 1, ntr
81 if (itr == 1) then
82 znom(itr, iQ) = nom(iQ)
83 noml(itr, iQ) = nom(iQ)
84 zunites(itr, iQ) = unites(iQ)
85 else
86 znom(itr, iQ) = ctrs(itr) // 'v' // nom(iQ)
87 noml(itr, iQ) = 'transport: v * ' // nom(iQ) // ' ' // ctrs(itr)
88 zunites(itr, iQ) = 'm/s * ' // unites(iQ)
89 endif
90 enddo
91 enddo
92
93 ! Déclarations des champs avec dimension verticale
94 do iQ = 1, nQ
95 do itr = 1, ntr
96 call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
97 zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
98 'ave(X)', dt_cum, dt_cum)
99 enddo
100 ! Déclarations pour les fonctions de courant
101 call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
102 zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
103 'ave(X)', dt_cum, dt_cum)
104 enddo
105
106 ! Déclarations pour les champs de transport d'air
107 call histdef(fileid, 'masse', 'masse', 'kg', 1, jjm, horiid, llm, 1, &
108 llm, vertiid, 'ave(X)', dt_cum, dt_cum)
109 call histdef(fileid, 'v', 'v', 'm/s', 1, jjm, horiid, llm, 1, llm, &
110 vertiid, 'ave(X)', dt_cum, dt_cum)
111 ! Déclarations pour les fonctions de courant
112 call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', 1, jjm, &
113 horiid, llm, 1, llm, vertiid, 'ave(X)', dt_cum, dt_cum)
114
115 ! Déclaration des champs 1D de transport en latitude
116 do iQ = 1, nQ
117 do itr = 2, ntr
118 call histdef(fileid, 'a' // znom(itr, iQ), noml(itr, iQ), &
119 zunites(itr, iQ), 1, jjm, horiid, 1, 1, 1, -99, 'ave(X)', &
120 dt_cum, dt_cum)
121 enddo
122 enddo
123
124 CALL histend(fileid)
125
126 end SUBROUTINE init_dynzon
127
128 end module init_dynzon_m

  ViewVC Help
Powered by ViewVC 1.1.21