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

Annotation of /trunk/Sources/phylmd/conf_phys.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 191 - (hide annotations)
Mon May 9 19:56:28 2016 UTC (8 years ago) by guez
File size: 1609 byte(s)
Extracted the call to read_comdissnew out of conf_gcm.

Made ok_instan a variable of module clesphys, itau_phy a variable of
module phyetat0_m, nid_ins a variable of module ini_histins_m, itap a
variable of new module time_phylmdz, so that histwrite_phy can be
called from any procedure without the need to cascade those variables
into that procedure. Made itau_w a variable of module time_phylmdz so
that it is computed only once per time step of physics.

Extracted variables of module clesphys which were in namelist
conf_phys_nml into their own namelist, clesphys_nml, and created
procedure read_clesphys reading clesphys_nml, to avoid side effect.

No need for double precision in procedure getso4fromfile. Assume there
is a single variable for the whole year in the NetCDF file instead of
one variable per month.

Created generic procedure histwrite_phy and removed procedure
write_histins, following LMDZ. histwrite_phy has only two arguments,
can be called from anywhere, and should manage the logic of writing or
not writing into various history files with various operations. So the
test on ok_instan goes inside histwrite_phy.

Test for raz_date in phyetat0 instead of physiq to avoid side effect.

Created procedure increment_itap to avoid side effect.

Removed unnecessary differences between procedures readsulfate and
readsulfate_pi.

1 guez 3 module conf_phys_m
2    
3     implicit none
4    
5 guez 69 integer:: iflag_pbl = 1 ! for the planetary boundary layer
6     REAL:: rad_chau1 = 13., rad_chau2 = 9.
7 guez 3
8     contains
9    
10 guez 68 subroutine conf_phys
11 guez 3
12 guez 68 ! From phylmd/conf_phys.F90, version 1.7 2005/07/05 07:21:23
13 guez 3
14 guez 68 ! Configuration de la "physique" de LMDZ.
15 guez 3
16 guez 191 USE clesphys, ONLY: read_clesphys
17 guez 69 use clesphys2, only: read_clesphys2
18 guez 68 USE comfisrtilp, ONLY: cld_lc_con, cld_lc_lsc, cld_tau_con, &
19     cld_tau_lsc, coef_eva, ffallv_con, ffallv_lsc, iflag_pdf, reevap_ice
20     USE conema3_m, ONLY: epmax, iflag_clw, ok_adj_ema
21     use unit_nml_m, only: unit_nml
22 guez 125 USE yomcst, ONLY: read_YOMCST
23 guez 3
24 guez 191 namelist /conf_phys_nml/ epmax, ok_adj_ema, iflag_clw, cld_lc_lsc, &
25     cld_lc_con, cld_tau_lsc, cld_tau_con, ffallv_lsc, ffallv_con, &
26     coef_eva, reevap_ice, iflag_pdf, iflag_pbl
27 guez 3
28 guez 69 namelist /nuagecom/ rad_chau1, rad_chau2
29    
30 guez 3 !-----------------------------------------------------------
31    
32     print *, "Call sequence information: conf_phys"
33 guez 69 call read_clesphys2
34 guez 125 call read_YOMCST
35 guez 3
36     epmax = .993
37     ok_adj_ema = .false.
38     iflag_clw = 0
39     cld_lc_lsc = 2.6e-4
40     cld_lc_con = 2.6e-4
41     cld_tau_lsc = 3600.
42     cld_tau_con = 3600.
43     ffallv_lsc = 1.
44     ffallv_con = 1.
45     coef_eva = 2.e-5
46     reevap_ice = .false.
47     iflag_pdf = 0
48 guez 62
49 guez 68 print *, "Enter namelist 'conf_phys_nml'."
50     read(unit=*, nml=conf_phys_nml)
51     write(unit_nml, nml=conf_phys_nml)
52 guez 62
53 guez 191 call read_clesphys
54 guez 62
55 guez 69 print *, "Enter namelist 'nuagecom'."
56     read(unit=*, nml=nuagecom)
57     write(unit_nml, nml=nuagecom)
58    
59 guez 3 end subroutine conf_phys
60    
61     end module conf_phys_m

  ViewVC Help
Powered by ViewVC 1.1.21