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

Contents of /trunk/phylmd/conf_phys.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 68 - (show annotations)
Wed Nov 14 16:59:30 2012 UTC (11 years, 6 months ago) by guez
Original Path: trunk/libf/phylmd/conf_phys.f90
File size: 3575 byte(s)
Split "flincom.f90" into "flinclo.f90", "flinfindcood.f90",
"flininfo.f90" and "flinopen_nozoom.f90", in directory
"IOIPSL/Flincom".

Renamed "etat0_lim" to "ce0l", as in LMDZ.

Split "readsulfate.f" into "readsulfate.f90", "readsulfate_preind.f90"
and "getso4fromfile.f90".

In etat0, renamed variable q3d to q, as in "dynredem1". Replaced calls
to Flicom procedures by calls to NetCDF95.

In leapfrog, added call to writehist.

Extracted ASCII art from "grid_noro" into a file
"grid_noro.txt". Transformed explicit-shape local arrays into
automatic arrays, so that test on values of iim and jjm is no longer
needed. Test on weight:
          IF (weight(ii, jj) /= 0.) THEN
is useless. There is already a test before:
    if (any(weight == 0.)) stop "zero weight in grid_noro"

In "aeropt", replaced duplicated lines with different values of inu by
a loop on inu.

Removed arguments of "conf_phys". Corresponding variables are now
defined in "physiq", in a namelist. In "conf_phys", read a namelist
instead of using getin.

1 module conf_phys_m
2
3 implicit none
4
5 integer iflag_pbl ! parameter for the planetary boundary layer
6
7 contains
8
9 subroutine conf_phys
10
11 ! From phylmd/conf_phys.F90, version 1.7 2005/07/05 07:21:23
12
13 ! Configuration de la "physique" de LMDZ.
14
15 USE clesphys, ONLY: bug_ozone, cdhmax, cdmmax, cfc11_ppt, cfc12_ppt, &
16 ch4_ppb, co2_ppm, ecrit_day, ecrit_hf, ecrit_hf2mth, ecrit_ins, &
17 ecrit_mth, ecrit_reg, ecrit_tra, ksta, ksta_ter, latmax_ins, &
18 latmin_ins, lev_histday, lev_histhf, lev_histmth, lonmax_ins, &
19 lonmin_ins, n2o_ppb, ok_isccp, ok_kzmin, ok_regdyn, overlap, rcfc11, &
20 rcfc12, rch4, rco2, rn2o, solaire, top_height, type_run
21 USE comfisrtilp, ONLY: cld_lc_con, cld_lc_lsc, cld_tau_con, &
22 cld_tau_lsc, coef_eva, ffallv_con, ffallv_lsc, iflag_pdf, reevap_ice
23 USE conema3_m, ONLY: epmax, iflag_clw, ok_adj_ema
24 USE nuagecom, ONLY: rad_chau1, rad_chau2, rad_froid
25 use unit_nml_m, only: unit_nml
26 USE yomcst, ONLY: r_ecc, r_incl, r_peri
27
28 namelist /conf_phys_nml/ R_ecc, R_peri, R_incl, solaire, co2_ppm, &
29 CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt, epmax, ok_adj_ema, &
30 iflag_clw, cld_lc_lsc, cld_lc_con, cld_tau_lsc, cld_tau_con, &
31 ffallv_lsc, ffallv_con, coef_eva, reevap_ice, iflag_pdf, &
32 rad_froid, rad_chau1, rad_chau2, top_height, overlap, cdmmax, &
33 cdhmax, ksta, ksta_ter, ok_kzmin, iflag_pbl, lev_histhf, &
34 lev_histday, lev_histmth, type_run, ok_isccp, ok_regdyn, &
35 lonmin_ins, lonmax_ins, latmin_ins, latmax_ins, ecrit_ins, &
36 ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, ecrit_tra, &
37 ecrit_reg, bug_ozone
38
39 !-----------------------------------------------------------
40
41 print *, "Call sequence information: conf_phys"
42
43 R_ecc = 0.016715 ! AMIP II
44 R_peri = 102.7 ! AMIP II
45 R_incl = 23.441 ! AMIP II
46 solaire = 1365. ! AMIP II
47 co2_ppm = 348. ! AMIP II
48 CH4_ppb = 1650.
49 N2O_ppb = 306.
50 CFC11_ppt = 280.
51 CFC12_ppt = 484.
52 epmax = .993
53 ok_adj_ema = .false.
54 iflag_clw = 0
55 cld_lc_lsc = 2.6e-4
56 cld_lc_con = 2.6e-4
57 cld_tau_lsc = 3600.
58 cld_tau_con = 3600.
59 ffallv_lsc = 1.
60 ffallv_con = 1.
61 coef_eva = 2.e-5
62 reevap_ice = .false.
63 iflag_pdf = 0
64 rad_froid = 35.0
65 rad_chau1 = 13.0
66 rad_chau2 = 9.0
67 top_height = 3
68 overlap = 3
69 cdmmax = 1.3E-3
70 cdhmax = 1.1E-3
71 ksta = 1.0e-10
72 ksta_ter = 1.0e-10
73 ok_kzmin = .true.
74 iflag_pbl = 1
75 lev_histhf = 0
76 lev_histday = 1
77 lev_histmth = 2
78 type_run = 'AMIP'
79 ok_isccp = .false.
80 ok_regdyn = .false.
81 lonmin_ins = 100.
82 lonmax_ins = 130.
83 latmin_ins = -20.
84 latmax_ins = 20.
85 ecrit_ins = NINT(86400./48.)
86 ecrit_hf = NINT(86400. *0.25)
87 ecrit_hf2mth = 4*30 ! ecriture mens. a partir de val. inst. toutes les 6h
88 ecrit_day = 86400
89 ecrit_mth = 86400
90 ecrit_tra = 1
91 ecrit_reg = NINT(86400. *0.25) ! 4 fois par jour
92 bug_ozone = .false.
93
94 print *, "Enter namelist 'conf_phys_nml'."
95 read(unit=*, nml=conf_phys_nml)
96 write(unit_nml, nml=conf_phys_nml)
97
98 RCO2 = co2_ppm * 1.0e-06 * 44.011/28.97
99 RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97
100 RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97
101 RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97
102 RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97
103
104 print *, ' RCO2 = ', RCO2
105 print *, ' RCH4 = ', RCH4
106 print *, ' RN2O = ', RN2O
107 print *, ' RCFC11 = ', RCFC11
108 print *, ' RCFC12 = ', RCFC12
109
110 end subroutine conf_phys
111
112 end module conf_phys_m

  ViewVC Help
Powered by ViewVC 1.1.21