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

Annotation of /trunk/dyn3d/init_dynzon.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 61 - (hide annotations)
Fri Apr 20 14:58:43 2012 UTC (12 years, 1 month ago) by guez
Original Path: trunk/libf/dyn3d/init_dynzon.f90
File size: 4104 byte(s)
No more included file in LMDZE, not even "netcdf.inc".

Created a variable containing the list of common source files in
GNUmakefile. So we now also see clearly files that are specific to
each program.

Split module "histcom". Assembled resulting files in directory
"Histcom".

Removed aliasing in calls to "laplacien".

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

  ViewVC Help
Powered by ViewVC 1.1.21