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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 202 - (hide annotations)
Wed Jun 8 12:23:41 2016 UTC (7 years, 11 months ago) by guez
File size: 3008 byte(s)
Promoted lmt_pas from local variable of physiq to variable of module
conf_gcm_m.

Removed variable run_off of module interface_surf. Was not
used. Called run_off_ter in LMDZ, but not used nor printed there
either.

Simplified logic in interfoce_lim. The way it was convoluted with
interfsurf_hq and clmain was quite a mess. Extracted reading of SST
into a separate procedure: read_sst. We do not need SST and pctsrf_new
at the same time: SST is not needed for sea-ice surface. I did not
like this programming: going through the procedure repeatedly for
different purposes and testing inside whether there was something to
do or it was already done. Reading is now only controlled by itap and
lmt_pas, instead of debut, jour, jour_lu and deja_lu. Now we do not
copy from pct_tmp to pctsrf_new every time step.

Simplified processing of pctsrf in clmain and below. It was quite
troubling: pctsrf_new was intent out in interfoce_lim but only defined
for ocean and sea-ice. Also the idea of having arrays for all
surfaces, pcsrf and pctsrf_new, in interfsurf_hq, which is called for
a particular surface, was troubling. pctsrf_new for all surfaces was
intent out in intefsurf_hq, but not defined for all surfaces at each
call. Removed argument pctsrf_new of clmain: was a duplicate of pctsrf
on output, and not used in physiq. Replaced pctsrf_new in clmain by
pctsrf_new_oce and pctsrf_new_sic, which were the only ones modified.

1 guez 3 module clesphys
2    
3 guez 51 ! From version 1.3 2005/06/06 13:16:33
4 guez 3
5     implicit none
6    
7 guez 68 REAL co2_ppm ! concentration du gaz carbonique en ppmv
8     real solaire ! Constante solaire en W/m2
9     double precision RCO2 ! Concentration du CO2
10     double precision RCH4 ! Concentration du CH4
11     double precision RN2O ! Concentration du N2O
12     double precision RCFC11 ! Concentration du CFC11
13     double precision RCFC12 ! Concentration du CFC12
14 guez 3 double precision CH4_ppb, N2O_ppb, CFC11_ppt, CFC12_ppt
15 guez 68
16     ! Simulateur ISCCP:
17     INTEGER top_height
18     INTEGER overlap ! 1, 2 or 3
19    
20 guez 51 REAL cdmmax, cdhmax ! seuils cdrm, cdrh
21     REAL ksta, ksta_ter ! paramètres stabilité sur terres et en dehors
22     LOGICAL ok_kzmin ! calcul Kzmin dans la couche limite de surface
23 guez 68
24 guez 3 INTEGER lev_histhf ! niveau sorties 6h
25 guez 68 ! 4: histhf3d.nc champs 3d niveaux modele
26    
27 guez 3 integer lev_histday ! niveau sorties journalieres
28 guez 68 ! 3: champs 3D => F. Lott
29     ! 4: + champs sous-surfaces
30    
31 guez 3 integer lev_histmth ! niveau sorties mensuelles
32 guez 68 ! 3: albedo, rugosite sous-surfaces
33     ! 4: champs tendances 3d
34    
35     CHARACTER(len=4) type_run ! 'AMIP' ou 'ENSP'
36 guez 3 LOGICAL ok_isccp, ok_regdyn
37 guez 68
38 guez 3 REAL lonmin_ins, lonmax_ins, latmin_ins, latmax_ins
39 guez 68 ! 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 guez 202 INTEGER ecrit_ins
44 guez 191 logical:: ok_instan = .false. ! sorties instantanees dans le fichier histins
45 guez 3
46     save
47    
48 guez 191 contains
49    
50     subroutine read_clesphys
51    
52     use unit_nml_m, only: unit_nml
53    
54     namelist /clesphys_nml/ solaire, co2_ppm, CH4_ppb, N2O_ppb, CFC11_ppt, &
55     CFC12_ppt, top_height, overlap, cdmmax, cdhmax, ksta, &
56     ksta_ter, ok_kzmin, lev_histhf, lev_histday, lev_histmth, &
57     type_run, ok_isccp, ok_regdyn, lonmin_ins, lonmax_ins, latmin_ins, &
58 guez 202 latmax_ins, ecrit_ins, ok_instan
59 guez 191
60     !---------------------------------------------------------
61    
62     solaire = 1365. ! AMIP II
63     co2_ppm = 348. ! AMIP II
64     CH4_ppb = 1650.
65     N2O_ppb = 306.
66     CFC11_ppt = 280.
67     CFC12_ppt = 484.
68     top_height = 3
69     overlap = 3
70     cdmmax = 1.3E-3
71     cdhmax = 1.1E-3
72     ksta = 1.0e-10
73     ksta_ter = 1.0e-10
74     ok_kzmin = .true.
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    
87     print *, "Enter namelist 'clesphys_nml'."
88     read(unit=*, nml=clesphys_nml)
89     write(unit_nml, nml=clesphys_nml)
90    
91     RCO2 = co2_ppm * 1.0e-06 * 44.011/28.97
92     RCH4 = CH4_ppb * 1.0E-09 * 16.043/28.97
93     RN2O = N2O_ppb * 1.0E-09 * 44.013/28.97
94     RCFC11=CFC11_ppt* 1.0E-12 * 137.3686/28.97
95     RCFC12 = CFC12_ppt * 1.0E-12 * 120.9140/28.97
96    
97     print *, ' RCO2 = ', RCO2
98     print *, ' RCH4 = ', RCH4
99     print *, ' RN2O = ', RN2O
100     print *, ' RCFC11 = ', RCFC11
101     print *, ' RCFC12 = ', RCFC12
102    
103     end subroutine read_clesphys
104    
105 guez 3 end module clesphys

  ViewVC Help
Powered by ViewVC 1.1.21