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

Contents of /trunk/Sources/dyn3d/init_dynzon.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (show annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years ago) by guez
File size: 3988 byte(s)
Sources inside, compilation outside.
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 dynetat0_m, only: day_ref, annee_ref
23 USE histbeg_totreg_m, ONLY: histbeg_totreg
24 USE histdef_m, ONLY: histdef
25 USE histend_m, ONLY: histend
26 USE histvert_m, ONLY: histvert
27 USE nr_util, ONLY: pi
28 USE temps, ONLY: itau_dyn
29 USE ymds2ju_m, ONLY: ymds2ju
30
31 real, intent(in):: dt_app
32
33 ! Local:
34
35 real dt_cum
36 character(len=5), parameter:: unites(nQ) = (/'K ', 'm2/s2', 'm2/s2', &
37 'ang ', 'm/s ', 'kg/kg', 'un '/)
38
39 ! Champs de tansport en moyenne zonale
40 integer itr
41 character(len=26) noml(ntr, nQ)
42 character(len=12) zunites(ntr, nQ)
43 character(len=3), parameter:: ctrs(ntr) = (/' ', 'TOT', 'MMC', 'TRS', &
44 'STN'/)
45 integer iQ
46
47 ! Initialisation du fichier contenant les moyennes zonales.
48
49 integer horiid, vertiid
50 real julian
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 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, julian)
65
66 rlong = 0.
67 rlatg = rlatv * 180. / pi
68
69 call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &
70 julian, dt_cum, horiid, fileid)
71
72 ! Appel à histvert pour la grille verticale
73
74 call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', presnivs, vertiid)
75
76 ! Appels à histdef pour la définition des variables à sauvegarder
77 do iQ = 1, nQ
78 do itr = 1, ntr
79 if (itr == 1) then
80 znom(itr, iQ) = nom(iQ)
81 noml(itr, iQ) = nom(iQ)
82 zunites(itr, iQ) = unites(iQ)
83 else
84 znom(itr, iQ) = ctrs(itr) // 'v' // nom(iQ)
85 noml(itr, iQ) = 'transport: v * ' // nom(iQ) // ' ' // ctrs(itr)
86 zunites(itr, iQ) = 'm/s * ' // unites(iQ)
87 endif
88 enddo
89 enddo
90
91 ! Déclarations des champs avec dimension verticale
92 do iQ = 1, nQ
93 do itr = 1, ntr
94 call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
95 zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
96 'ave(X)', dt_cum, dt_cum)
97 enddo
98 ! Déclarations pour les fonctions de courant
99 call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
100 zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
101 'ave(X)', dt_cum, dt_cum)
102 enddo
103
104 ! Déclarations pour les champs de transport d'air
105 call histdef(fileid, 'masse', 'masse', 'kg', 1, jjm, horiid, llm, 1, &
106 llm, vertiid, 'ave(X)', dt_cum, dt_cum)
107 call histdef(fileid, 'v', 'v', 'm/s', 1, jjm, horiid, llm, 1, llm, &
108 vertiid, 'ave(X)', dt_cum, dt_cum)
109 ! Déclarations pour les fonctions de courant
110 call histdef(fileid, 'psi', 'stream fn. MMC ', 'mega t/s', 1, jjm, &
111 horiid, llm, 1, llm, vertiid, 'ave(X)', dt_cum, dt_cum)
112
113 ! Déclaration des champs 1D de transport en latitude
114 do iQ = 1, nQ
115 do itr = 2, ntr
116 call histdef(fileid, 'a' // znom(itr, iQ), noml(itr, iQ), &
117 zunites(itr, iQ), 1, jjm, horiid, 1, 1, 1, -99, 'ave(X)', &
118 dt_cum, dt_cum)
119 enddo
120 enddo
121
122 CALL histend(fileid)
123
124 end SUBROUTINE init_dynzon
125
126 end module init_dynzon_m

  ViewVC Help
Powered by ViewVC 1.1.21