4 |
|
|
5 |
implicit none |
implicit none |
6 |
|
|
7 |
REAL co2_ppm ! concentration du gaz carbonique en ppmv |
REAL:: co2_ppm = 348. ! AMIP II, concentration du gaz carbonique en ppmv |
8 |
real solaire ! Constante solaire en W/m2 |
real:: solaire = 1365. ! AMIP II, constante solaire en W/m2 |
9 |
double precision RCO2 ! Concentration du CO2 |
double precision, save:: RCO2 ! Concentration du CO2 |
10 |
double precision RCH4 ! Concentration du CH4 |
double precision, save:: RCH4 ! Concentration du CH4 |
11 |
double precision RN2O ! Concentration du N2O |
double precision, save:: RN2O ! Concentration du N2O |
12 |
double precision RCFC11 ! Concentration du CFC11 |
double precision, save:: RCFC11 ! Concentration du CFC11 |
13 |
double precision RCFC12 ! Concentration du CFC12 |
double precision, save:: RCFC12 ! Concentration du CFC12 |
14 |
double precision CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt |
double precision:: CH4_ppb = 1650., N2O_ppb = 306. |
15 |
|
double precision:: CFC11_ppt = 280., CFC12_ppt = 484. |
16 |
! Simulateur ISCCP: |
REAL:: cdmmax = 1.3E-3, cdhmax = 1.1E-3 ! seuils cdrm, cdrh |
17 |
INTEGER top_height |
|
18 |
INTEGER overlap ! 1, 2 or 3 |
REAL:: ksta = 1.0e-10, ksta_ter = 1.0e-10 |
19 |
|
! param\`etres stabilit\'e sur terre et en dehors |
|
REAL cdmmax, cdhmax ! seuils cdrm, cdrh |
|
|
REAL ksta, ksta_ter ! paramètres stabilité sur terres et en dehors |
|
|
LOGICAL ok_kzmin ! calcul Kzmin dans la couche limite de surface |
|
|
|
|
|
INTEGER lev_histhf ! niveau sorties 6h |
|
|
! 4: histhf3d.nc champs 3d niveaux modele |
|
|
|
|
|
integer lev_histday ! niveau sorties journalieres |
|
|
! 3: champs 3D => F. Lott |
|
|
! 4: + champs sous-surfaces |
|
|
|
|
|
integer lev_histmth ! niveau sorties mensuelles |
|
|
! 3: albedo, rugosite sous-surfaces |
|
|
! 4: champs tendances 3d |
|
|
|
|
|
CHARACTER(len=4) type_run ! 'AMIP' ou 'ENSP' |
|
|
LOGICAL ok_isccp, ok_regdyn |
|
|
|
|
|
REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins |
|
|
! longitude et latitude minimales et maximales pour la zone avec |
|
|
! sorties instantanées tous les pas de temps de la physique, |
|
|
! fichier "histbilKP_ins.nc" |
|
20 |
|
|
21 |
INTEGER ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day |
LOGICAL:: ok_kzmin = .true.! calcul Kzmin dans la couche limite de surface |
22 |
INTEGER ecrit_mth, ecrit_tra, ecrit_reg |
INTEGER, save:: ecrit_ins |
23 |
logical:: ok_instan = .false. ! sorties instantanees dans le fichier histins |
logical:: ok_instan = .false. ! sorties instantanees dans le fichier histins |
24 |
|
|
|
save |
|
|
|
|
25 |
contains |
contains |
26 |
|
|
27 |
subroutine read_clesphys |
subroutine read_clesphys |
29 |
use unit_nml_m, only: unit_nml |
use unit_nml_m, only: unit_nml |
30 |
|
|
31 |
namelist /clesphys_nml/ solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, & |
namelist /clesphys_nml/ solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, & |
32 |
CFC12_ppt, top_height, overlap, cdmmax, cdhmax, ksta, & |
CFC12_ppt, cdmmax, cdhmax, ksta, ksta_ter, ok_kzmin, ecrit_ins, & |
33 |
ksta_ter, ok_kzmin, lev_histhf, lev_histday, lev_histmth, & |
ok_instan |
|
type_run, ok_isccp, ok_regdyn, lonmin_ins, lonmax_ins, latmin_ins, & |
|
|
latmax_ins, ecrit_ins, ecrit_hf, ecrit_hf2mth, ecrit_day, ecrit_mth, & |
|
|
ecrit_tra, ecrit_reg, ok_instan |
|
34 |
|
|
35 |
!--------------------------------------------------------- |
!--------------------------------------------------------- |
36 |
|
|
|
solaire = 1365. ! AMIP II |
|
|
co2_ppm = 348. ! AMIP II |
|
|
CH4_ppb = 1650. |
|
|
N2O_ppb = 306. |
|
|
CFC11_ppt = 280. |
|
|
CFC12_ppt = 484. |
|
|
top_height = 3 |
|
|
overlap = 3 |
|
|
cdmmax = 1.3E-3 |
|
|
cdhmax = 1.1E-3 |
|
|
ksta = 1.0e-10 |
|
|
ksta_ter = 1.0e-10 |
|
|
ok_kzmin = .true. |
|
|
lev_histhf = 0 |
|
|
lev_histday = 1 |
|
|
lev_histmth = 2 |
|
|
type_run = 'AMIP' |
|
|
ok_isccp = .false. |
|
|
ok_regdyn = .false. |
|
|
lonmin_ins = 100. |
|
|
lonmax_ins = 130. |
|
|
latmin_ins = -20. |
|
|
latmax_ins = 20. |
|
37 |
ecrit_ins = NINT(86400./48.) |
ecrit_ins = NINT(86400./48.) |
|
ecrit_hf = NINT(86400. *0.25) |
|
|
ecrit_hf2mth = 4*30 ! ecriture mens. a partir de val. inst. toutes les 6h |
|
|
ecrit_day = 86400 |
|
|
ecrit_mth = 86400 |
|
|
ecrit_tra = 1 |
|
|
ecrit_reg = NINT(86400. *0.25) ! 4 fois par jour |
|
38 |
|
|
39 |
print *, "Enter namelist 'clesphys_nml'." |
print *, "Enter namelist 'clesphys_nml'." |
40 |
read(unit=*, nml=clesphys_nml) |
read(unit=*, nml=clesphys_nml) |