LMDZ
etat0phys_netcdf.F90
Go to the documentation of this file.
1 MODULE etat0phys
2 !
3 !*******************************************************************************
4 ! Purpose: Create physical initial state using atmospheric fields from a
5 ! database of atmospheric to initialize the model.
6 !-------------------------------------------------------------------------------
7 ! Comments:
8 !
9 ! * This module is designed to work for Earth (and with ioipsl)
10 !
11 ! * etat0phys_netcdf routine can access to NetCDF data through subroutines:
12 ! "start_init_phys" for variables contained in file "ECPHY.nc":
13 ! 'ST' : Surface temperature
14 ! 'CDSW' : Soil moisture
15 ! "start_init_orog" for variables contained in file "Relief.nc":
16 ! 'RELIEF' : High resolution orography
17 !
18 ! * The land mask and corresponding weights can be:
19 ! 1) computed using the ocean mask from the ocean model (to ensure ocean
20 ! fractions are the same for atmosphere and ocean) for coupled runs.
21 ! File name: "o2a.nc" ; variable name: "OceMask"
22 ! 2) computed from topography file "Relief.nc" for forced runs.
23 !
24 ! * Allowed values for read_climoz flag are 0, 1 and 2:
25 ! 0: do not read an ozone climatology
26 ! 1: read a single ozone climatology that will be used day and night
27 ! 2: read two ozone climatologies, the average day and night climatology
28 ! and the daylight climatology
29 !-------------------------------------------------------------------------------
30 ! * There is a big mess with the longitude size. Should it be iml or iml+1 ?
31 ! I have chosen to use the iml+1 as an argument to this routine and we declare
32 ! internaly smaller fields when needed. This needs to be cleared once and for
33 ! all in LMDZ. A convention is required.
34 !-------------------------------------------------------------------------------
35 
36  USE ioipsl, ONLY: flininfo, flinopen, flinget, flinclo
37  USE assert_eq_m, ONLY: assert_eq
38  USE dimphy, ONLY: klon
39  USE conf_dat_m, ONLY: conf_dat2d
40  USE phys_state_var_mod, ONLY: zmea, zstd, zsig, zgam, zthe, zpic, zval, z0m, &
46 
47  PRIVATE
48  PUBLIC :: etat0phys_netcdf
49 
50  include "iniprint.h"
51  include "dimensions.h"
52  include "paramet.h"
53  include "comgeom2.h"
54  include "comconst.h"
55  include "dimsoil.h"
56  include "temps.h"
57  include "clesphys.h"
58  REAL, SAVE :: deg2rad
59  REAL, SAVE, ALLOCATABLE :: tsol(:)
61  REAL, ALLOCATABLE, SAVE :: lon_phys(:,:), lat_phys(:,:), levphys_ini(:)
62  CHARACTER(LEN=256), PARAMETER :: orofname="Relief.nc", orogvar="RELIEF"
63  CHARACTER(LEN=256), PARAMETER :: phyfname="ECPHY.nc", psrfvar="SP"
64  CHARACTER(LEN=256), PARAMETER :: qsolvar="CDSW", tsrfvar="ST"
65 
66 
67 CONTAINS
68 
69 
70 !-------------------------------------------------------------------------------
71 !
72 SUBROUTINE etat0phys_netcdf(masque, phis)
73 !
74 !-------------------------------------------------------------------------------
75 ! Purpose: Creates initial states
76 !-------------------------------------------------------------------------------
77 ! Notes: 1) This routine is designed to work for Earth
78 ! 2) If masque(:,:)/=-99999., masque and phis are already known.
79 ! Otherwise: compute it.
80 !-------------------------------------------------------------------------------
81  USE control_mod
82  USE fonte_neige_mod
83  USE pbl_surface_mod
85  USE indice_sol_mod
86  USE conf_phys_m, ONLY: conf_phys
88  IMPLICIT NONE
89 !-------------------------------------------------------------------------------
90 ! Arguments:
91  REAL, INTENT(INOUT) :: masque(:,:) !--- Land mask dim(iip1,jjp1)
92  REAL, INTENT(INOUT) :: phis (:,:) !--- Ground geopotential dim(iip1,jjp1)
93 !-------------------------------------------------------------------------------
94 ! Local variables:
95  CHARACTER(LEN=256) :: modname="etat0phys_netcdf", fmt
96  INTEGER :: i, j, l, ji, iml, jml
97  LOGICAL :: read_mask
98  REAL :: phystep, dummy
99  REAL, DIMENSION(SIZE(masque,1),SIZE(masque,2)) :: masque_tmp
100  REAL, DIMENSION(klon) :: sn, rugmer, run_off_lic_0, fder
101  REAL, DIMENSION(klon,nbsrf) :: qsolsrf, snsrf
102  REAL, DIMENSION(klon,nsoilmx,nbsrf) :: tsoil
103 
104 !--- Arguments for conf_phys
105  LOGICAL :: ok_journe, ok_mensuel, ok_instan, ok_hf, ok_LES, callstats
106  REAL :: solarlong0, seuil_inversion, fact_cldcon, facttemps
107  LOGICAL :: ok_newmicro
108  INTEGER :: iflag_radia, iflag_cldcon, iflag_ratqs
109  REAL :: ratqsbas, ratqshaut, tau_ratqs
110  LOGICAL :: ok_ade, ok_aie, ok_cdnc, aerosol_couple
111  INTEGER :: flag_aerosol
112  LOGICAL :: flag_aerosol_strat
113  LOGICAL :: new_aod
114  REAL :: bl95_b0, bl95_b1
115  INTEGER :: read_climoz !--- Read ozone climatology
116  REAL :: alp_offset
117 
118  deg2rad= pi/180.0
119  iml=assert_eq(SIZE(masque,1),SIZE(phis,1),trim(modname)//" iml")
120  jml=assert_eq(SIZE(masque,2),SIZE(phis,2),trim(modname)//" jml")
121 
122 ! Physics configuration
123 !*******************************************************************************
124  CALL conf_phys( ok_journe, ok_mensuel, ok_instan, ok_hf, ok_les, &
125  callstats, &
126  solarlong0,seuil_inversion, &
127  fact_cldcon, facttemps,ok_newmicro,iflag_radia, &
128  iflag_cldcon, &
129  iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &
130  ok_ade, ok_aie, ok_cdnc, aerosol_couple, &
131  flag_aerosol, flag_aerosol_strat, new_aod, &
132  bl95_b0, bl95_b1, &
133  read_climoz, &
134  alp_offset)
135  CALL phys_state_var_init(read_climoz)
136 
137 !--- Initial atmospheric CO2 conc. from .def file
138  co2_ppm0 = co2_ppm
139 
140 ! Compute ground geopotential, sub-cells quantities and possibly the mask.
141 !*******************************************************************************
142  read_mask=any(masque/=-99999.); masque_tmp=masque
143  CALL start_init_orog(rlonv, rlatu, phis, masque_tmp)
144  WRITE(fmt,"(i4,'i1)')")iml ; fmt='('//adjustl(fmt)
145  IF(.NOT.read_mask) THEN !--- Keep mask form orography
146  masque=masque_tmp
147  IF(prt_level>=1) THEN
148  WRITE(lunout,*)'BUILT MASK :'
149  WRITE(lunout,fmt) nint(masque)
150  END IF
151  WHERE( masque(:,:)<epsfra) masque(:,:)=0.
152  WHERE(1.-masque(:,:)<epsfra) masque(:,:)=1.
153  END IF
154  CALL gr_dyn_fi(1,iml,jml,klon,masque,zmasq) !--- Land mask to physical grid
155 
156 ! Compute tsol and qsol on physical grid, knowing phis on 2D grid.
157 !*******************************************************************************
158  CALL start_init_phys(rlonu, rlatv, phis)
159 
160 ! Some initializations.
161 !*******************************************************************************
162  sn(:) = 0.0 !--- Snow
163  radsol(:) = 0.0 !--- Net radiation at ground
164  rugmer(:) = 0.001 !--- Ocean rugosity
165  IF(read_climoz>=1) & !--- Ozone climatology
166  CALL regr_lat_time_climoz(read_climoz)
167 
168 ! Sub-surfaces initialization.
169 !*******************************************************************************
170  CALL start_init_subsurf(read_mask)
171 
172 ! Write physical initial state
173 !*******************************************************************************
174  WRITE(lunout,*)'phystep ',dtvr,iphysiq,nbapp_rad
175  phystep = dtvr * float(iphysiq)
176  radpas = nint(86400./phystep/ float(nbapp_rad) )
177  WRITE(lunout,*)'phystep =', phystep, radpas
178 
179 ! Init: ftsol, snsrf, qsolsrf, tsoil, rain_fall, snow_fall, solsw, sollw, z0
180 !*******************************************************************************
181  DO i=1,nbsrf; ftsol(:,i) = tsol; END DO
182  DO i=1,nbsrf; snsrf(:,i) = sn; END DO
183  falb_dir(:,is_ter,:) = 0.08
184  falb_dir(:,is_lic,:) = 0.6
185  falb_dir(:,is_oce,:) = 0.5
186  falb_dir(:,is_sic,:) = 0.6
187  fevap(:,:) = 0.
188  DO i=1,nbsrf; qsolsrf(:,i)=150.; END DO
189  DO i=1,nbsrf; DO j=1,nsoilmx; tsoil(:,j,i) = tsol; end do; END DO
190  rain_fall = 0.
191  snow_fall = 0.
192  solsw = 165.
193  sollw = -53.
194  t_ancien = 273.15
195  q_ancien = 0.
196  agesno = 0.
197 
198  z0m(:,is_oce) = rugmer(:)
199  z0m(:,is_ter) = max(1.0e-05,zstd(:)*zsig(:)/2.0)
200  z0m(:,is_lic) = max(1.0e-05,zstd(:)*zsig(:)/2.0)
201  z0m(:,is_sic) = 0.001
202  z0h(:,:)=z0m(:,:)
203 
204  fder = 0.0
205  clwcon = 0.0
206  rnebcon = 0.0
207  ratqs = 0.0
208  run_off_lic_0 = 0.0
209  rugoro = 0.0
210 
211 ! Before phyredem calling, surface modules and values to be saved in startphy.nc
212 ! are initialized
213 !*******************************************************************************
214  dummy = 1.0
215  pbl_tke(:,:,:) = 1.e-8
216  zmax0(:) = 40.
217  f0(:) = 1.e-5
218  sig1(:,:) = 0.
219  w01(:,:) = 0.
220  wake_deltat(:,:) = 0.
221  wake_deltaq(:,:) = 0.
222  wake_s(:) = 0.
223  wake_cstar(:) = 0.
224  wake_fip(:) = 0.
225  wake_pe = 0.
226  fm_therm = 0.
227  entr_therm = 0.
228  detr_therm = 0.
229 
230  CALL fonte_neige_init(run_off_lic_0)
231  CALL pbl_surface_init( fder, snsrf, qsolsrf, tsoil )
232  CALL phyredem( "startphy.nc" )
233 
234 ! WRITE(lunout,*)'CCCCCCCCCCCCCCCCCC REACTIVER SORTIE VISU DANS ETAT0'
235 ! WRITE(lunout,*)'entree histclo'
236  CALL histclo()
237 
238 END SUBROUTINE etat0phys_netcdf
239 !
240 !-------------------------------------------------------------------------------
241 
242 
243 !-------------------------------------------------------------------------------
244 !
245 SUBROUTINE start_init_orog(lon_in,lat_in,phis,masque)
246 !
247 !===============================================================================
248 ! Comment:
249 ! This routine launch grid_noro, which computes parameters for SSO scheme as
250 ! described in LOTT & MILLER (1997) and LOTT(1999).
251 !===============================================================================
252  USE grid_noro_m, ONLY: grid_noro
253  IMPLICIT NONE
254 !-------------------------------------------------------------------------------
255 ! Arguments:
256  REAL, INTENT(IN) :: lon_in(:), lat_in(:) ! dim (iml) (jml)
257  REAL, INTENT(INOUT) :: phis(:,:), masque(:,:) ! dim (iml,jml)
258 !-------------------------------------------------------------------------------
259 ! Local variables:
260  CHARACTER(LEN=256) :: modname
261  INTEGER :: fid, llm_tmp,ttm_tmp, iml,jml, iml_rel,jml_rel, itau(1)
262  REAL :: lev(1), date, dt
263  REAL, ALLOCATABLE :: lon_rad(:), lon_ini(:), lon_rel(:,:), relief_hi(:,:)
264  REAL, ALLOCATABLE :: lat_rad(:), lat_ini(:), lat_rel(:,:), tmp_var (:,:)
265  REAL, ALLOCATABLE :: zmea0(:,:), zstd0(:,:), zsig0(:,:)
266  REAL, ALLOCATABLE :: zgam0(:,:), zthe0(:,:), zpic0(:,:), zval0(:,:)
267 !-------------------------------------------------------------------------------
268  modname="start_init_orog"
269  iml=assert_eq(SIZE(lon_in),SIZE(phis,1),SIZE(masque,1),trim(modname)//" iml")
270  jml=assert_eq(SIZE(lat_in),SIZE(phis,2),SIZE(masque,2),trim(modname)//" jml")
271 
272 !--- HIGH RESOLUTION OROGRAPHY
273  CALL flininfo(orofname, iml_rel, jml_rel, llm_tmp, ttm_tmp, fid)
274 
275  ALLOCATE(lat_rel(iml_rel,jml_rel),lon_rel(iml_rel,jml_rel))
276  CALL flinopen(orofname, .false., iml_rel, jml_rel, llm_tmp, lon_rel, lat_rel,&
277  lev, ttm_tmp, itau, date, dt, fid)
278  ALLOCATE(relief_hi(iml_rel,jml_rel))
279  CALL flinget(fid, orogvar, iml_rel, jml_rel, llm_tmp, ttm_tmp, 1,1, relief_hi)
280  CALL flinclo(fid)
281 
282 !--- IF ANGLES ARE IN DEGREES, THEY ARE CONVERTED INTO RADIANS
283  ALLOCATE(lon_ini(iml_rel),lat_ini(jml_rel))
284  lon_ini(:)=lon_rel(:,1); IF(maxval(lon_rel)>pi) lon_ini=lon_ini*deg2rad
285  lat_ini(:)=lat_rel(1,:); IF(maxval(lat_rel)>pi) lat_ini=lat_ini*deg2rad
286 
287 !--- FIELDS ARE PROCESSED TO BE ON STANDARD ANGULAR DOMAINS
288  ALLOCATE(lon_rad(iml_rel),lat_rad(jml_rel))
289  CALL conf_dat2d(orogvar, lon_ini, lat_ini, lon_rad, lat_rad, relief_hi,.false.)
290  DEALLOCATE(lon_ini,lat_ini)
291 
292 !--- COMPUTING THE REQUIRED FIELDS USING ROUTINE grid_noro
293  WRITE(lunout,*)
294  WRITE(lunout,*)'*** Compute parameters needed for gravity wave drag code ***'
295 
296 !--- ALLOCATIONS OF SUB-CELL SCALES QUANTITIES
297  ALLOCATE(zmea0(iml,jml),zstd0(iml,jml)) !--- Mean orography and std deviation
298  ALLOCATE(zsig0(iml,jml),zgam0(iml,jml)) !--- Slope and nisotropy
299  ALLOCATE(zthe0(iml,jml)) !--- Highest slope orientation
300  ALLOCATE(zpic0(iml,jml),zval0(iml,jml)) !--- Peaks and valley heights
301 
302 !--- CALL OROGRAPHY MODULE TO COMPUTE FIELDS
303  CALL grid_noro(lon_rad,lat_rad,relief_hi,lon_in,lat_in,phis,zmea0,zstd0, &
304  zsig0,zgam0,zthe0,zpic0,zval0,masque)
305  phis = phis * 9.81
306  phis(iml,:) = phis(1,:)
307  DEALLOCATE(relief_hi,lon_rad,lat_rad)
308 
309 !--- PUT QUANTITIES TO PHYSICAL GRID
310  CALL gr_dyn_fi(1,iml,jml,klon,zmea0,zmea); DEALLOCATE(zmea0)
311  CALL gr_dyn_fi(1,iml,jml,klon,zstd0,zstd); DEALLOCATE(zstd0)
312  CALL gr_dyn_fi(1,iml,jml,klon,zsig0,zsig); DEALLOCATE(zsig0)
313  CALL gr_dyn_fi(1,iml,jml,klon,zgam0,zgam); DEALLOCATE(zgam0)
314  CALL gr_dyn_fi(1,iml,jml,klon,zthe0,zthe); DEALLOCATE(zthe0)
315  CALL gr_dyn_fi(1,iml,jml,klon,zpic0,zpic); DEALLOCATE(zpic0)
316  CALL gr_dyn_fi(1,iml,jml,klon,zval0,zval); DEALLOCATE(zval0)
317 
318 
319 END SUBROUTINE start_init_orog
320 !
321 !-------------------------------------------------------------------------------
322 
323 
324 !-------------------------------------------------------------------------------
325 !
326 SUBROUTINE start_init_phys(lon_in,lat_in,phis)
327 !
328 !===============================================================================
329 ! Purpose: Compute tsol and qsol, knowing phis.
330 !===============================================================================
331  IMPLICIT NONE
332 !-------------------------------------------------------------------------------
333 ! Arguments:
334  REAL, INTENT(IN) :: lon_in(:), lat_in(:) ! dim (iml) (jml2)
335  REAL, INTENT(IN) :: phis(:,:) ! dim (iml,jml)
336 !-------------------------------------------------------------------------------
337 ! Local variables:
338  CHARACTER(LEN=256) :: modname
339  REAL :: date, dt
340  INTEGER :: iml, jml, jml2, itau(1)
341  REAL, ALLOCATABLE :: lon_rad(:), lon_ini(:), var_ana(:,:)
342  REAL, ALLOCATABLE :: lat_rad(:), lat_ini(:)
343  REAL, ALLOCATABLE :: ts(:,:), qs(:,:)
344 !-------------------------------------------------------------------------------
345  modname="start_init_phys"
346  iml=assert_eq(SIZE(lon_in),SIZE(phis,1),trim(modname)//" iml")
347  jml=SIZE(phis,2); jml2=SIZE(lat_in)
348 
349  WRITE(lunout,*)'Opening the surface analysis'
350  CALL flininfo(phyfname, iml_phys, jml_phys, llm_phys, ttm_phys, fid_phys)
351  WRITE(lunout,*) 'Values read: ', iml_phys, jml_phys, llm_phys, ttm_phys
352 
354  ALLOCATE(levphys_ini(llm_phys))
355  CALL flinopen(phyfname, .false., iml_phys, jml_phys, llm_phys, &
357 
358 !--- IF ANGLES ARE IN DEGREES, THEY ARE CONVERTED INTO RADIANS
359  ALLOCATE(lon_ini(iml_phys),lat_ini(jml_phys))
360  lon_ini(:)=lon_phys(:,1); IF(maxval(lon_phys)>pi) lon_ini=lon_ini*deg2rad
361  lat_ini(:)=lat_phys(1,:); IF(maxval(lat_phys)>pi) lat_ini=lat_ini*deg2rad
362 
363  ALLOCATE(var_ana(iml_phys,jml_phys),lon_rad(iml_phys),lat_rad(jml_phys))
364  CALL get_var_phys(tsrfvar,ts) !--- SURFACE TEMPERATURE
365  CALL get_var_phys(qsolvar,qs) !--- SOIL MOISTURE
366  CALL flinclo(fid_phys)
367  DEALLOCATE(var_ana,lon_rad,lat_rad,lon_ini,lat_ini)
368 
369 !--- TSOL AND QSOL ON PHYSICAL GRID
370  ALLOCATE(tsol(klon))
371  CALL gr_dyn_fi(1,iml,jml,klon,ts,tsol)
372  CALL gr_dyn_fi(1,iml,jml,klon,qs,qsol)
373  DEALLOCATE(ts,qs)
374 
375 CONTAINS
376 
377 !-------------------------------------------------------------------------------
378 !
379 SUBROUTINE get_var_phys(title,field)
380 !
381 !-------------------------------------------------------------------------------
382  IMPLICIT NONE
383 !-------------------------------------------------------------------------------
384 ! Arguments:
385  CHARACTER(LEN=*), INTENT(IN) :: title
386  REAL, ALLOCATABLE, INTENT(INOUT) :: field(:,:)
387 !-------------------------------------------------------------------------------
388 ! Local variables:
389  INTEGER :: tllm
390 !-------------------------------------------------------------------------------
391  SELECT CASE(title)
392  CASE(psrfvar); tllm=0
393  CASE(tsrfvar,qsolvar); tllm=llm_phys
394  END SELECT
395  IF(ALLOCATED(field)) RETURN
396  ALLOCATE(field(iml,jml)); field(:,:)=0.
397  CALL flinget(fid_phys,title,iml_phys,jml_phys,tllm,ttm_phys,1,1,var_ana)
398  CALL conf_dat2d(title, lon_ini, lat_ini, lon_rad, lat_rad, var_ana, .true.)
399  CALL interp_startvar(title, .true., lon_rad, lat_rad, var_ana, &
400  lon_in, lat_in, field)
401 
402 END SUBROUTINE get_var_phys
403 !
404 !-------------------------------------------------------------------------------
405 !
406 END SUBROUTINE start_init_phys
407 !
408 !-------------------------------------------------------------------------------
409 
410 
411 !-------------------------------------------------------------------------------
412 !
413 SUBROUTINE interp_startvar(nam,ibeg,lon,lat,vari,lon2,lat2,varo)
414 !
415 !-------------------------------------------------------------------------------
416  USE inter_barxy_m, ONLY: inter_barxy
417  IMPLICIT NONE
418 !-------------------------------------------------------------------------------
419 ! Arguments:
420  CHARACTER(LEN=*), INTENT(IN) :: nam
421  LOGICAL, INTENT(IN) :: ibeg
422  REAL, INTENT(IN) :: lon(:), lat(:) ! dim (ii) (jj)
423  REAL, INTENT(IN) :: vari(:,:) ! dim (ii,jj)
424  REAL, INTENT(IN) :: lon2(:), lat2(:) ! dim (i1) (j2)
425  REAL, INTENT(OUT) :: varo(:,:) ! dim (i1) (j1)
426 !-------------------------------------------------------------------------------
427 ! Local variables:
428  CHARACTER(LEN=256) :: modname
429  INTEGER :: ii, jj, i1, j1, j2
430  REAL, ALLOCATABLE :: vtmp(:,:)
431 !-------------------------------------------------------------------------------
432  modname="interp_startvar"
433  ii=assert_eq(SIZE(lon), SIZE(vari,1),trim(modname)//" ii")
434  jj=assert_eq(SIZE(lat), SIZE(vari,2),trim(modname)//" jj")
435  i1=assert_eq(SIZE(lon2),SIZE(varo,1),trim(modname)//" i1")
436  j1=SIZE(varo,2); j2=SIZE(lat2)
437  ALLOCATE(vtmp(i1-1,j1))
438  IF(ibeg.AND.prt_level>1) THEN
439  WRITE(lunout,*)"--------------------------------------------------------"
440  WRITE(lunout,*)"$$$ Interpolation barycentrique pour "//trim(nam)//" $$$"
441  WRITE(lunout,*)"--------------------------------------------------------"
442  END IF
443  CALL inter_barxy(lon, lat(:jj-1), vari, lon2(:i1-1), lat2, vtmp)
444  CALL gr_int_dyn(vtmp, varo, i1-1, j1)
445 
446 END SUBROUTINE interp_startvar
447 !
448 !-------------------------------------------------------------------------------
449 
450 
451 END MODULE etat0phys
452 !
453 !*******************************************************************************
454 
real, dimension(:,:), allocatable, save q_ancien
real, dimension(:,:), allocatable, save w01
real, dimension(:,:), allocatable, save clwcon
real, dimension(:), allocatable, save levphys_ini
real, dimension(:), allocatable, save tsol
integer, parameter is_ter
character(len=256), parameter orofname
real, dimension(:), allocatable, save f0
real, dimension(:), allocatable, save zval
real, dimension(:), allocatable, save zsig
subroutine, public grid_noro(xd, yd, zd, x, y, zphi, zmea, zstd, zsig, zgam, zthe, zpic, zval, mask)
Definition: grid_noro_m.F90:15
real, dimension(:), allocatable, save snow_fall
subroutine, public regr_lat_time_climoz(read_climoz)
real, dimension(:,:,:), allocatable, save falb_dir
real, dimension(:,:), allocatable, save wake_deltaq
subroutine conf_phys(ok_journe, ok_mensuel, ok_instan, ok_hf, ok_LES, callstats, solarlong0, seuil_inversion, fact_cldcon, facttemps, ok_newmicro, iflag_radia, iflag_cld_th, iflag_ratqs, ratqsbas, ratqshaut, tau_ratqs, ok_ade, ok_aie, ok_cdnc, aerosol_couple, flag_aerosol, flag_aerosol_strat, new_aod, bl95_b0, bl95_b1, read_climoz, alp_offset)
Definition: conf_phys_m.F90:24
real, dimension(:,:), allocatable, save lat_phys
real, dimension(:), allocatable, save rain_fall
real, dimension(:,:), allocatable, save sig1
real, dimension(:,:), allocatable, save t_ancien
subroutine gr_int_dyn(champin, champdyn, iim, jp1)
Definition: gr_int_dyn.F:5
subroutine fonte_neige_init(restart_runoff)
integer, save klon
Definition: dimphy.F90:3
character(len=256), parameter tsrfvar
subroutine, public conf_dat2d(title, xd, yd, xf, yf, champd, interbar)
Definition: conf_dat_m.F90:15
real, dimension(:), allocatable, save zmea
integer, save iml_phys
subroutine phyredem(fichnom)
Definition: phyredem.F90:5
real, dimension(:,:), allocatable, save pctsrf
real, dimension(:), allocatable, save radsol
real, dimension(:,:), allocatable, save entr_therm
!$Id mode_top_bound COMMON comconstr && pi
Definition: comconst.h:7
!$Header!CDK comgeom COMMON comgeom rlatu
Definition: comgeom.h:25
real, dimension(:), allocatable, save qsol
integer, save iphysiq
Definition: control_mod.F90:24
subroutine start_init_phys(lon_in, lat_in, phis)
real, dimension(:,:,:), allocatable, save pbl_tke
real, dimension(:), allocatable, save sollw
real, dimension(:,:), allocatable, save rnebcon
!$Header!c include clesph0 h c COMMON clesph0 nbapp_rad
Definition: clesph0.h:6
subroutine start_init_orog(lon_in, lat_in, phis, masque)
integer, save jml_phys
real, save deg2rad
real, dimension(:), allocatable, save wake_s
real, dimension(:), allocatable, save wake_cstar
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
Definition: calcul_STDlev.h:26
real, dimension(:,:), allocatable, save z0m
real, dimension(:), allocatable, save rugoro
integer, parameter is_lic
real, dimension(:), allocatable, save zpic
subroutine interp_startvar(nam, ibeg, lon, lat, vari, lon2, lat2, varo)
real, dimension(:), allocatable, save rlon
!$Id ok_orolf LOGICAL ok_limitvrai LOGICAL ok_all_xml INTEGER iflag_ener_conserv REAL co2_ppm
Definition: clesphys.h:12
real, dimension(:,:), allocatable, save fm_therm
real, dimension(:), allocatable, save solsw
real, dimension(:), allocatable, save zgam
!FH On elimine toutes les clefs physiques dans la dynamique prt_level
character(len=256), parameter psrfvar
character(len=256), parameter phyfname
real, dimension(:), allocatable, save wake_fip
!$Header!CDK comgeom COMMON comgeom rlonu
Definition: comgeom.h:25
!$Header!CDK comgeom COMMON comgeom rlatv
Definition: comgeom.h:25
subroutine, public inter_barxy(dlonid, dlatid, champ, rlonimod, rlatimod, champint)
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
subroutine gr_dyn_fi(nfield, im, jm, ngrid, pdyn, pfi)
Definition: gr_dyn_fi.F:5
integer, save llm_phys
!$Id ok_orolf LOGICAL ok_limitvrai LOGICAL ok_all_xml INTEGER iflag_ener_conserv REAL co2_ppm0
Definition: clesphys.h:12
subroutine get_var_phys(title, field)
integer, parameter nbsrf
integer, save ttm_phys
real, dimension(:), allocatable, save rlat
real, parameter epsfra
!$Id mode_top_bound COMMON comconstr dtvr
Definition: comconst.h:7
character(len=256), parameter orogvar
real, dimension(:), allocatable, save wake_pe
character(len=256), parameter qsolvar
real, dimension(:,:), allocatable, save agesno
subroutine phys_state_var_init()
real, dimension(:,:), allocatable, save ratqs
real, dimension(:), allocatable, save zstd
subroutine pbl_surface_init(fder_rst, snow_rst, qsurf_rst, ftsoil_rst)
subroutine, public etat0phys_netcdf(masque, phis)
integer, parameter is_sic
real, dimension(:,:), allocatable, save lon_phys
real, dimension(:,:), allocatable, save fevap
real, dimension(:), allocatable, save zmax0
nrlmd
integer, save fid_phys
real, dimension(:,:), allocatable, save z0h
real, dimension(:,:), allocatable, save ftsol
Definition: dimphy.F90:1
subroutine, public start_init_subsurf(known_mask)
Definition: init_ssrf_m.F90:25
real, dimension(:), allocatable, save zthe
integer, parameter is_oce
real, dimension(:,:), allocatable, save detr_therm
!$Header!gestion des impressions de sorties et de débogage la sortie standard prt_level COMMON comprint lunout
Definition: iniprint.h:7
!$Header!CDK comgeom COMMON comgeom rlonv
Definition: comgeom.h:25
real, dimension(:,:), allocatable, save wake_deltat