/[lmdze]/trunk/phylmd/phyredem0.f90
ViewVC logotype

Annotation of /trunk/phylmd/phyredem0.f90

Parent Directory Parent Directory | Revision Log Revision Log


Revision 202 - (hide annotations)
Wed Jun 8 12:23:41 2016 UTC (7 years, 11 months ago) by guez
Original Path: trunk/Sources/phylmd/phyredem0.f
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 guez 157 module phyredem0_m
2    
3     IMPLICIT NONE
4    
5     INTEGER ncid_restartphy
6    
7     contains
8    
9 guez 202 SUBROUTINE phyredem0
10 guez 157
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 guez 202 use conf_gcm_m, only: nday, lmt_pas
19 guez 157 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 guez 191 use phyetat0_m, only: rlat, rlon, itau_phy
26 guez 157
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