/[lmdze]/trunk/Sources/phylmd/phyredem0.f
ViewVC logotype

Contents of /trunk/Sources/phylmd/phyredem0.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 202 - (show annotations)
Wed Jun 8 12:23:41 2016 UTC (7 years, 10 months ago) by guez
File size: 7316 byte(s)
Promoted lmt_pas from local variable of physiq to variable of module
conf_gcm_m.

Removed variable run_off of module interface_surf. Was not
used. Called run_off_ter in LMDZ, but not used nor printed there
either.

Simplified logic in interfoce_lim. The way it was convoluted with
interfsurf_hq and clmain was quite a mess. Extracted reading of SST
into a separate procedure: read_sst. We do not need SST and pctsrf_new
at the same time: SST is not needed for sea-ice surface. I did not
like this programming: going through the procedure repeatedly for
different purposes and testing inside whether there was something to
do or it was already done. Reading is now only controlled by itap and
lmt_pas, instead of debut, jour, jour_lu and deja_lu. Now we do not
copy from pct_tmp to pctsrf_new every time step.

Simplified processing of pctsrf in clmain and below. It was quite
troubling: pctsrf_new was intent out in interfoce_lim but only defined
for ocean and sea-ice. Also the idea of having arrays for all
surfaces, pcsrf and pctsrf_new, in interfsurf_hq, which is called for
a particular surface, was troubling. pctsrf_new for all surfaces was
intent out in intefsurf_hq, but not defined for all surfaces at each
call. Removed argument pctsrf_new of clmain: was a duplicate of pctsrf
on output, and not used in physiq. Replaced pctsrf_new in clmain by
pctsrf_new_oce and pctsrf_new_sic, which were the only ones modified.

1 module phyredem0_m
2
3 IMPLICIT NONE
4
5 INTEGER ncid_restartphy
6
7 contains
8
9 SUBROUTINE phyredem0
10
11 ! From phylmd/phyredem.F, version 1.3, 2005/05/25 13:10:09
12 ! Author: Z. X. Li (LMD/CNRS)
13 ! Date: 1993/08/18
14
15 ! Objet : \'ecriture de l'\'etat de d\'emarrage ou red\'emarrage
16 ! pour la physique
17
18 use conf_gcm_m, only: nday, lmt_pas
19 USE dimphy, ONLY: klev, klon
20 USE dimsoil, ONLY: nsoilmx
21 USE indicesol, ONLY: nbsrf
22 USE netcdf, ONLY: nf90_clobber, nf90_global, nf90_float
23 USE netcdf95, ONLY: nf95_create, nf95_put_att, nf95_def_dim, &
24 nf95_def_var, nf95_enddef, nf95_put_var
25 use phyetat0_m, only: rlat, rlon, itau_phy
26
27 ! Local:
28
29 INTEGER idim2, idim3, dimid_nbsrf, dimid_nsoilmx
30 integer varid, varid_rlon, varid_rlat
31
32 !------------------------------------------------------------
33
34 PRINT *, 'Call sequence information: phyredem0'
35 CALL nf95_create("restartphy.nc", nf90_clobber, ncid_restartphy)
36
37 call nf95_put_att(ncid_restartphy, nf90_global, 'title', &
38 'start file for the physics code')
39 call nf95_put_att(ncid_restartphy, nf90_global, "itau_phy", &
40 itau_phy + nday * lmt_pas)
41
42 call nf95_def_dim(ncid_restartphy, 'points_physiques', klon, idim2)
43 call nf95_def_dim(ncid_restartphy, 'klev', klev, idim3)
44 call nf95_def_dim(ncid_restartphy, 'nbsrf', nbsrf, dimid_nbsrf)
45 call nf95_def_dim(ncid_restartphy, 'nsoilmx', nsoilmx, dimid_nsoilmx)
46
47 call nf95_def_var(ncid_restartphy, 'longitude', nf90_float, idim2, &
48 varid_rlon)
49 call nf95_def_var(ncid_restartphy, 'latitude', nf90_float, idim2, &
50 varid_rlat)
51
52 call nf95_def_var(ncid_restartphy, 'masque', nf90_float, idim2, varid)
53 call nf95_put_att(ncid_restartphy, varid, 'title', 'masque terre mer')
54
55 ! Fractions de chaque sous-surface
56
57 call nf95_def_var(ncid_restartphy, 'FTER', nf90_float, idim2, varid)
58 call nf95_put_att(ncid_restartphy, varid, 'title', 'fraction de continent')
59
60 call nf95_def_var(ncid_restartphy, 'FLIC', nf90_float, idim2, varid)
61 call nf95_put_att(ncid_restartphy, varid, 'title', &
62 'fraction glace de terre')
63
64 call nf95_def_var(ncid_restartphy, 'FOCE', nf90_float, idim2, varid)
65 call nf95_put_att(ncid_restartphy, varid, 'title', 'fraction ocean')
66
67 call nf95_def_var(ncid_restartphy, 'FSIC', nf90_float, idim2, varid)
68 call nf95_put_att(ncid_restartphy, varid, 'title', 'fraction glace mer')
69
70 call nf95_def_var(ncid_restartphy, 'TS', nf90_float, &
71 (/idim2, dimid_nbsrf/), varid)
72 call nf95_put_att(ncid_restartphy, varid, 'title', 'surface temperature')
73
74 call nf95_def_var(ncid_restartphy, 'Tsoil', nf90_float, &
75 (/idim2, dimid_nsoilmx, dimid_nbsrf/), varid)
76 call nf95_put_att(ncid_restartphy, varid, 'title', 'soil temperature')
77
78 call nf95_def_var(ncid_restartphy, 'QS', nf90_float, &
79 (/idim2, dimid_nbsrf/), varid)
80 call nf95_put_att(ncid_restartphy, varid, 'title', 'Humidite de surface')
81
82 call nf95_def_var(ncid_restartphy, 'QSOL', nf90_float, idim2, varid)
83 call nf95_put_att(ncid_restartphy, varid, 'title', 'Eau dans le sol (mm)')
84
85 call nf95_def_var(ncid_restartphy, 'ALBE', nf90_float, &
86 (/idim2, dimid_nbsrf/), varid)
87 call nf95_put_att(ncid_restartphy, varid, 'title', 'albedo de surface')
88
89 call nf95_def_var(ncid_restartphy, 'EVAP', nf90_float, &
90 (/idim2, dimid_nbsrf/), varid)
91 call nf95_put_att(ncid_restartphy, varid, 'title', 'Evaporation de surface')
92
93 call nf95_def_var(ncid_restartphy, 'SNOW', nf90_float, &
94 (/idim2, dimid_nbsrf/), varid)
95 call nf95_put_att(ncid_restartphy, varid, 'title', 'Neige de surface')
96
97 call nf95_def_var(ncid_restartphy, 'RADS', nf90_float, idim2, varid)
98 call nf95_put_att(ncid_restartphy, varid, 'title', &
99 'Rayonnement net a la surface')
100
101 call nf95_def_var(ncid_restartphy, 'solsw', nf90_float, idim2, varid)
102 call nf95_put_att(ncid_restartphy, varid, 'title', &
103 'Rayonnement solaire a la surface')
104
105 call nf95_def_var(ncid_restartphy, 'sollw', nf90_float, idim2, varid)
106 call nf95_put_att(ncid_restartphy, varid, 'title', &
107 'Rayonnement IF a la surface')
108
109 call nf95_def_var(ncid_restartphy, 'fder', nf90_float, idim2, varid)
110 call nf95_put_att(ncid_restartphy, varid, 'title', 'Derive de flux')
111
112 call nf95_def_var(ncid_restartphy, 'rain_f', nf90_float, idim2, varid)
113 call nf95_put_att(ncid_restartphy, varid, 'title', 'precipitation liquide')
114
115 call nf95_def_var(ncid_restartphy, 'snow_f', nf90_float, idim2, varid)
116 call nf95_put_att(ncid_restartphy, varid, 'title', 'precipitation solide')
117
118 call nf95_def_var(ncid_restartphy, 'RUG', nf90_float, &
119 (/idim2, dimid_nbsrf/), varid)
120 call nf95_put_att(ncid_restartphy, varid, 'title', 'rugosite de surface')
121
122 call nf95_def_var(ncid_restartphy, 'AGESNO', nf90_float, &
123 (/idim2, dimid_nbsrf/), varid)
124 call nf95_put_att(ncid_restartphy, varid, 'title', &
125 'Age de la neige surface')
126
127 call nf95_def_var(ncid_restartphy, 'ZMEA', nf90_float, idim2, varid)
128 call nf95_def_var(ncid_restartphy, 'ZSTD', nf90_float, idim2, varid)
129 call nf95_def_var(ncid_restartphy, 'ZSIG', nf90_float, idim2, varid)
130 call nf95_def_var(ncid_restartphy, 'ZGAM', nf90_float, idim2, varid)
131 call nf95_def_var(ncid_restartphy, 'ZTHE', nf90_float, idim2, varid)
132 call nf95_def_var(ncid_restartphy, 'ZPIC', nf90_float, idim2, varid)
133 call nf95_def_var(ncid_restartphy, 'ZVAL', nf90_float, idim2, varid)
134 call nf95_def_var(ncid_restartphy, 'TANCIEN', nf90_float, &
135 (/idim2, idim3/), varid)
136 call nf95_def_var(ncid_restartphy, 'QANCIEN', nf90_float, &
137 (/idim2, idim3/), varid)
138
139 call nf95_def_var(ncid_restartphy, 'RUGMER', nf90_float, idim2, varid)
140 call nf95_put_att(ncid_restartphy, varid, 'title', &
141 'Longueur de rugosite sur mer')
142
143 call nf95_def_var(ncid_restartphy, 'CLWCON', nf90_float, idim2, varid)
144 call nf95_put_att(ncid_restartphy, varid, 'title', 'Eau liquide convective')
145
146 call nf95_def_var(ncid_restartphy, 'RNEBCON', nf90_float, idim2, varid)
147 call nf95_put_att(ncid_restartphy, varid, 'title', 'Nebulosite convective')
148
149 call nf95_def_var(ncid_restartphy, 'RATQS', nf90_float, idim2, varid)
150 call nf95_put_att(ncid_restartphy, varid, 'title', 'Ratqs')
151
152 call nf95_def_var(ncid_restartphy, 'RUNOFFLIC0', nf90_float, idim2, varid)
153 call nf95_put_att(ncid_restartphy, varid, 'title', 'Runofflic0')
154
155 call nf95_def_var(ncid_restartphy, 'sig1', nf90_float, (/idim2, idim3/), &
156 varid)
157 call nf95_put_att(ncid_restartphy, varid, 'long_name', &
158 'section adiabatic updraft')
159
160 call nf95_def_var(ncid_restartphy, 'w01', nf90_float, (/idim2, idim3/), &
161 varid)
162 call nf95_put_att(ncid_restartphy, varid, 'long_name', &
163 'vertical velocity within adiabatic updraft')
164
165 call nf95_def_var(ncid_restartphy, 'trs', nf90_float, idim2, varid)
166 call nf95_put_att(ncid_restartphy, varid, 'long_name', &
167 'radon concentation in soil')
168
169 call nf95_enddef(ncid_restartphy)
170
171 call nf95_put_var(ncid_restartphy, varid_rlon, rlon)
172 call nf95_put_var(ncid_restartphy, varid_rlat, rlat)
173
174 END SUBROUTINE phyredem0
175
176 end module phyredem0_m

  ViewVC Help
Powered by ViewVC 1.1.21