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

Annotation of /trunk/dyn3d/init_dynzon.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 134 - (hide annotations)
Wed Apr 29 15:47:56 2015 UTC (9 years, 1 month ago) by guez
Original Path: trunk/Sources/dyn3d/init_dynzon.f
File size: 3988 byte(s)
Sources inside, compilation outside.
1 guez 57 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 guez 92 USE comgeom, ONLY: rlatv
19 guez 62 USE conf_gcm_m, ONLY: day_step, iperiod, periodav
20 guez 92 USE dimens_m, ONLY: jjm, llm
21     USE disvert_m, ONLY: presnivs
22 guez 129 use dynetat0_m, only: day_ref, annee_ref
23 guez 62 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 guez 92 USE nr_util, ONLY: pi
28 guez 129 USE temps, ONLY: itau_dyn
29 guez 92 USE ymds2ju_m, ONLY: ymds2ju
30 guez 57
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 guez 62 ! Champs de tansport en moyenne zonale
40 guez 57 integer itr
41 guez 62 character(len=26) noml(ntr, nQ)
42 guez 57 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 guez 62 integer horiid, vertiid
50     real julian
51 guez 57 real rlong(jjm), rlatg(jjm)
52    
53     !-----------------------------------------------------------------
54    
55     print *, "Call sequence information: init_dynzon"
56    
57 guez 62 ! Initialisation des fichiers
58 guez 57 ! 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 guez 129 CALL ymds2ju(annee_ref, 1, day_ref, 0.0, julian)
65 guez 57
66     rlong = 0.
67 guez 62 rlatg = rlatv * 180. / pi
68 guez 57
69     call histbeg_totreg('dynzon', rlong(:1), rlatg, 1, 1, 1, jjm, itau_dyn, &
70 guez 62 julian, dt_cum, horiid, fileid)
71 guez 57
72     ! Appel à histvert pour la grille verticale
73    
74 guez 67 call histvert(fileid, 'presnivs', 'Niveaux sigma', 'mb', presnivs, vertiid)
75 guez 57
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 guez 62 noml(itr, iQ) = nom(iQ)
82 guez 57 zunites(itr, iQ) = unites(iQ)
83     else
84 guez 62 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 guez 57 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 guez 62 call histdef(fileid, znom(itr, iQ), noml(itr, iQ), &
95     zunites(itr, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
96 guez 57 'ave(X)', dt_cum, dt_cum)
97     enddo
98     ! Déclarations pour les fonctions de courant
99 guez 62 call histdef(fileid, 'psi' // nom(iQ), 'stream fn. ' // noml(2, iQ), &
100     zunites(2, iQ), 1, jjm, horiid, llm, 1, llm, vertiid, &
101 guez 57 'ave(X)', dt_cum, dt_cum)
102     enddo
103    
104     ! Déclarations pour les champs de transport d'air
105 guez 62 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 guez 57 ! Déclarations pour les fonctions de courant
110 guez 62 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 guez 57
113     ! Déclaration des champs 1D de transport en latitude
114     do iQ = 1, nQ
115     do itr = 2, ntr
116 guez 62 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 guez 57 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