1 |
module clesphys |
module clesphys |
2 |
|
|
3 |
! v 1.3 2005/06/06 13:16:33 fairhead |
! From version 1.3 2005/06/06 13:16:33 |
4 |
|
|
5 |
implicit none |
implicit none |
6 |
|
|
7 |
LOGICAL:: cycle_diurne= .TRUE. |
REAL co2_ppm ! concentration du gaz carbonique en ppmv |
8 |
! Cette option permet d'éteindre le cycle diurne. |
real solaire ! Constante solaire en W/m2 |
9 |
! Peut être utile pour accélérer le code. |
double precision RCO2 ! Concentration du CO2 |
10 |
|
double precision RCH4 ! Concentration du CH4 |
11 |
LOGICAL:: soil_model= .TRUE. |
double precision RN2O ! Concentration du N2O |
12 |
! Help = Choix du modele de sol (Thermique ?) |
double precision RCFC11 ! Concentration du CFC11 |
13 |
! Option qui pourait un string afin de pouvoir |
double precision RCFC12 ! Concentration du CFC12 |
|
! plus de choix ! Ou meme une liste d'options |
|
|
|
|
|
LOGICAL:: new_oliq= .TRUE. |
|
|
! Help = Permet de mettre en route la |
|
|
! nouvelle parametrisation de l'eau liquide |
|
|
|
|
|
LOGICAL:: ok_orodr= .TRUE. |
|
|
! Desc = Orodr ou non pour l orographie |
|
|
|
|
|
LOGICAL:: ok_orolf = .TRUE. |
|
|
! Desc = Orolf ou non pour l orographie |
|
|
|
|
|
LOGICAL:: ok_limitvrai= .FALSE. |
|
|
! Help = On peut forcer le modele a lire le |
|
|
! fichier SST de la bonne annee. C'est une tres bonne |
|
|
! idee, pourquoi ne pas mettre toujours a y ? |
|
|
|
|
|
LOGICAL bug_ozone |
|
|
|
|
|
INTEGER:: nbapp_rad= 12 |
|
|
! (nombre d'appels des routines de rayonnements par jour) |
|
|
|
|
|
INTEGER:: iflag_con = 2 |
|
|
! Help = Flag pour la convection les options suivantes existent : |
|
|
! 1 pour LMD, |
|
|
! 2 pour Tiedtke, |
|
|
! 3 pour CCM(NCAR) |
|
|
! Flag pour la convection (1 pour LMD, 2 pour Tiedtke, 3 KE, 4 KE vect) |
|
|
|
|
|
REAL co2_ppm, solaire |
|
|
double precision RCO2, RCH4, RN2O, RCFC11, RCFC12 |
|
14 |
double precision CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt |
double precision CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt |
15 |
!IM simulateur ISCCP |
|
16 |
INTEGER top_height, overlap |
! Simulateur ISCCP: |
17 |
!IM seuils cdrm, cdrh |
INTEGER top_height |
18 |
REAL cdmmax, cdhmax |
INTEGER overlap ! 1, 2 or 3 |
19 |
!IM param. stabilite s/ terres et en dehors |
|
20 |
REAL ksta, ksta_ter |
REAL cdmmax, cdhmax ! seuils cdrm, cdrh |
21 |
!IM ok_kzmin : clef calcul Kzmin dans la CL de surface cf FH |
REAL ksta, ksta_ter ! paramètres stabilité sur terres et en dehors |
22 |
LOGICAL ok_kzmin |
LOGICAL ok_kzmin ! calcul Kzmin dans la couche limite de surface |
23 |
|
|
24 |
INTEGER lev_histhf ! niveau sorties 6h |
INTEGER lev_histhf ! niveau sorties 6h |
25 |
|
! 4: histhf3d.nc champs 3d niveaux modele |
26 |
|
|
27 |
integer lev_histday ! niveau sorties journalieres |
integer lev_histday ! niveau sorties journalieres |
28 |
|
! 3: champs 3D => F. Lott |
29 |
|
! 4: + champs sous-surfaces |
30 |
|
|
31 |
integer lev_histmth ! niveau sorties mensuelles |
integer lev_histmth ! niveau sorties mensuelles |
32 |
CHARACTER(len=4) type_run |
! 3: albedo, rugosite sous-surfaces |
33 |
|
! 4: champs tendances 3d |
34 |
|
|
35 |
|
CHARACTER(len=4) type_run ! 'AMIP' ou 'ENSP' |
36 |
LOGICAL ok_isccp, ok_regdyn |
LOGICAL ok_isccp, ok_regdyn |
37 |
|
|
38 |
REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins |
REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins |
39 |
|
! longitude et latitude minimales et maximales pour la zone avec |
40 |
|
! sorties instantanées tous les pas de temps de la physique, |
41 |
|
! fichier "histbilKP_ins.nc" |
42 |
|
|
43 |
INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day |
INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day |
44 |
INTEGER ecrit_mth, ecrit_tra, ecrit_reg |
INTEGER ecrit_mth, ecrit_tra, ecrit_reg |
45 |
|
logical:: ok_instan = .false. ! sorties instantanees dans le fichier histins |
46 |
|
|
47 |
save |
save |
48 |
|
|
49 |
|
contains |
50 |
|
|
51 |
|
subroutine read_clesphys |
52 |
|
|
53 |
|
use unit_nml_m, only: unit_nml |
54 |
|
|
55 |
|
namelist /clesphys_nml/ solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, & |
56 |
|
CFC12_ppt, top_height, overlap, cdmmax, cdhmax, ksta, & |
57 |
|
ksta_ter, ok_kzmin, lev_histhf, lev_histday, lev_histmth, & |
58 |
|
type_run, ok_isccp, ok_regdyn, lonmin_ins, lonmax_ins, latmin_ins, & |
59 |
|
latmax_ins, ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, & |
60 |
|
ecrit_tra, ecrit_reg, ok_instan |
61 |
|
|
62 |
|
!--------------------------------------------------------- |
63 |
|
|
64 |
|
solaire = 1365. ! AMIP II |
65 |
|
co2_ppm = 348. ! AMIP II |
66 |
|
CH4_ppb = 1650. |
67 |
|
N2O_ppb = 306. |
68 |
|
CFC11_ppt = 280. |
69 |
|
CFC12_ppt = 484. |
70 |
|
top_height = 3 |
71 |
|
overlap = 3 |
72 |
|
cdmmax = 1.3E-3 |
73 |
|
cdhmax = 1.1E-3 |
74 |
|
ksta = 1.0e-10 |
75 |
|
ksta_ter = 1.0e-10 |
76 |
|
ok_kzmin = .true. |
77 |
|
lev_histhf = 0 |
78 |
|
lev_histday = 1 |
79 |
|
lev_histmth = 2 |
80 |
|
type_run = 'AMIP' |
81 |
|
ok_isccp = .false. |
82 |
|
ok_regdyn = .false. |
83 |
|
lonmin_ins = 100. |
84 |
|
lonmax_ins = 130. |
85 |
|
latmin_ins = -20. |
86 |
|
latmax_ins = 20. |
87 |
|
ecrit_ins = NINT(86400./48.) |
88 |
|
ecrit_hf = NINT(86400. *0.25) |
89 |
|
ecrit_hf2mth = 4*30 ! ecriture mens. a partir de val. inst. toutes les 6h |
90 |
|
ecrit_day = 86400 |
91 |
|
ecrit_mth = 86400 |
92 |
|
ecrit_tra = 1 |
93 |
|
ecrit_reg = NINT(86400. *0.25) ! 4 fois par jour |
94 |
|
|
95 |
|
print *, "Enter namelist 'clesphys_nml'." |
96 |
|
read(unit=*, nml=clesphys_nml) |
97 |
|
write(unit_nml, nml=clesphys_nml) |
98 |
|
|
99 |
|
RCO2 = co2_ppm * 1.0e-06 * 44.011/28.97 |
100 |
|
RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97 |
101 |
|
RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97 |
102 |
|
RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97 |
103 |
|
RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97 |
104 |
|
|
105 |
|
print *, ' RCO2 = ', RCO2 |
106 |
|
print *, ' RCH4 = ', RCH4 |
107 |
|
print *, ' RN2O = ', RN2O |
108 |
|
print *, ' RCFC11 = ', RCFC11 |
109 |
|
print *, ' RCFC12 = ', RCFC12 |
110 |
|
|
111 |
|
end subroutine read_clesphys |
112 |
|
|
113 |
end module clesphys |
end module clesphys |