source: LMDZ6/trunk/libf/phylmd/ecrad.v1.5.1/yoerad.F90 @ 4976

Last change on this file since 4976 was 3908, checked in by idelkadi, 4 years ago

Online implementation of the radiative transfer code ECRAD in the LMDZ model.

  • Inclusion of the ecrad directory containing the sources of the ECRAD code
    • interface routine : radiation_scheme.F90
  • Adaptation of compilation scripts :
    • compilation under CPP key CPP_ECRAD
    • compilation with option "-rad ecard" or "-ecard true"
    • The "-rad old/rtm/ecran" build option will need to replace the "-rrtm true" and "-ecrad true" options in the future.
  • Runing LMDZ simulations with ecrad, you need :
    • logical key iflag_rrtm = 2 in physiq.def
    • namelist_ecrad (DefLists?)
    • the directory "data" containing the configuration files is temporarily placed in ../libfphylmd/ecrad/
  • Compilation and execution are tested in the 1D case. The repository under svn would allow to continue the implementation work: tests, verification of the results, ...
File size: 10.8 KB
Line 
1MODULE YOERAD
2
3USE PARKIND1  ,ONLY : JPIM     ,JPRB
4
5IMPLICIT NONE
6
7SAVE
8
9!     ------------------------------------------------------------------
10!*    ** *YOERAD* - CONTROL OPTIONS FOR RADIATION CONFIGURATION
11!     ------------------------------------------------------------------
12
13INTEGER(KIND=JPIM) :: NAER
14INTEGER(KIND=JPIM) :: NMODE
15INTEGER(KIND=JPIM) :: NOZOCL
16INTEGER(KIND=JPIM) :: NRADFR
17INTEGER(KIND=JPIM) :: NRADPFR
18INTEGER(KIND=JPIM) :: NRADPLA
19INTEGER(KIND=JPIM) :: NRADINT
20INTEGER(KIND=JPIM) :: NRADRES
21INTEGER(KIND=JPIM) :: NRADNFR
22INTEGER(KIND=JPIM) :: NRADSFR
23INTEGER(KIND=JPIM) :: NRADE1H, NRADE3H
24INTEGER(KIND=JPIM) :: NRADELG
25INTEGER(KIND=JPIM) :: NOVLP
26INTEGER(KIND=JPIM) :: NRPROMA
27INTEGER(KIND=JPIM) :: NSW
28INTEGER(KIND=JPIM) :: NSWNL
29INTEGER(KIND=JPIM) :: NSWTL
30INTEGER(KIND=JPIM) :: NTSW
31INTEGER(KIND=JPIM) :: NUV
32INTEGER(KIND=JPIM) :: NCSRADF
33INTEGER(KIND=JPIM) :: NICEOPT
34INTEGER(KIND=JPIM) :: NLIQOPT
35INTEGER(KIND=JPIM) :: NRADIP
36INTEGER(KIND=JPIM) :: NRADLP
37INTEGER(KIND=JPIM) :: NINHOM
38INTEGER(KIND=JPIM) :: NLAYINH
39INTEGER(KIND=JPIM) :: NLNGR1H
40INTEGER(KIND=JPIM) :: NPERTAER
41INTEGER(KIND=JPIM) :: NPERTOZ
42INTEGER(KIND=JPIM) :: NSCEN
43INTEGER(KIND=JPIM) :: NHINCSOL
44INTEGER(KIND=JPIM) :: NMCICA
45INTEGER(KIND=JPIM) :: NGHGRAD
46INTEGER(KIND=JPIM) :: NDECOLAT
47INTEGER(KIND=JPIM) :: NMINICE
48INTEGER(KIND=JPIM) :: NVOLCVERT
49INTEGER(KIND=JPIM) :: NREDGLW
50INTEGER(KIND=JPIM) :: NREDGSW
51INTEGER(KIND=JPIM) :: NSPMAPL(16), NSPMAPS(14)
52
53LOGICAL :: LERAD1H
54LOGICAL :: LEPO3RA
55LOGICAL :: LONEWSW
56LOGICAL :: LECSRAD
57LOGICAL :: LRRTM
58LOGICAL :: LSRTM
59LOGICAL :: LDIFFC
60LOGICAL :: LHVOLCA
61LOGICAL :: LNEWAER
62LOGICAL :: LNOTROAER
63LOGICAL :: LRAYL
64LOGICAL :: LOPTRPROMA
65LOGICAL :: LECO2VAR
66LOGICAL :: LHGHG
67LOGICAL :: LEMODAL
68LOGICAL :: LESO4HIS
69LOGICAL :: LETRACGMS
70LOGICAL :: LAERCLIM, LAERVISI
71LOGICAL :: LVOLCSPEC
72LOGICAL :: LVOLCDAMP
73LOGICAL :: LDIAGFORCING
74LOGICAL :: LApproxLwUpdate
75LOGICAL :: LApproxSwUpdate
76LOGICAL :: LCentredTimeSZA
77
78CHARACTER (LEN = 256) ::  CRTABLEDIR
79CHARACTER (LEN = 32) ::   CRTABLEFIL
80LOGICAL :: LCCNL
81LOGICAL :: LCCNO
82LOGICAL :: LPERPET
83
84REAL(KIND=JPRB) :: RAOVLP , RBOVLP
85REAL(KIND=JPRB) :: RCCNLND, RCCNSEA
86LOGICAL :: LEDBUG
87REAL(KIND=JPRB) :: RPERTOZ, RRe2De
88REAL(KIND=JPRB) :: RLWINHF, RSWINHF
89REAL(KIND=JPRB) :: RMINICE
90REAL(KIND=JPRB) :: RVOLCSPEC(3)
91REAL(KIND=JPRB) :: RNs, RSIGAIR
92
93!        * E.C.M.W.F. PHYSICS PACKAGE *
94
95!     J.-J. MORCRETTE       E.C.M.W.F.      89/07/14
96! Modifications
97!    R J Hogan 20 May  2014: Added LApproxLwUpdate
98!    R J Hogan 19 June 2014: Added LApproxSwUpdate
99!    R J Hogan 19 Nov  2014: Added LCentredTimeSZA
100
101!  NAME     TYPE     PURPOSE
102!  ----  :  ----   : ---------------------------------------------------
103! LERAD1H: LOGICAL : .T. TO ALLOW MORE FREQUENT RADIATION CALCULATIONS
104!                  : DURING FIRST N HOURS OF FORECAST
105! NLNGR1H: INTEGER : NUMBER FORECAST HOURS DURING WHICH MORE FREQUENT
106!                    RADIATION CALCULATIONS ARE REQUIRED
107! LEPO3RA: LOGICAL : .T. IF PROGNOSTIC OZONE (EC) IS PASSED TO RADIATION
108! NAER   : INTEGER : CONFIGURATION INDEX FOR AEROSOLS
109! NMODE  : INTEGER : CONFIGURATION FOR RADIATION CODE: FLUX VS. RADIANCE
110! NOZOCL : INTEGER : CHOICE OF OZONE CLIMATOLOGY (0 old, 1 new)
111! NRADFR : INTEGER : FREQUENCY OF FULL RADIATION COMPUTATIONS
112!                    IF(NRADFR.GT.0): RAD EVERY 'NRADFR' TIME-STEPS
113!                    IF(NRADFR.LT.0): RAD EVERY '-NRADFR' HOURS
114! NRADPFR: INTEGER : PRINT FREQUENCY FOR RAD.STATISTICS (in RAD.T.STEPS)
115! NRADPLA: INTEGER : PRINT RAD.STATISTICS EVERY 'NRADPLA' ROWS
116! NRADINT: INTEGER : RADIATION INTERPOLATION METHOD
117!                  : 1 = SPECTRAL TRANSFORM INTERPOLATION
118!                  : 2 =  4 POINT HORIZONTAL INTERPOLATION
119!                  : 3 = 12 POINT HORIZONTAL INTERPOLATION
120! NRADRES: INTEGER : RADIATION GRID SPECTRAL RESOLUTION
121! NRADNFR: INTEGER : NORMAL   FREQUENCY OF RADIATION STEPS
122! NRADSFR: INTEGER : START-UP FREQUENCY OF RADIATION STEPS
123! NRADE1H: INTEGER : START-UP FREQUENCY OF RADIATION STEPS FOR EPS
124! NRADE3H: INTEGER : SUBSEQUENT FREQUENCY OF RADIATION STEPS FOR EPS
125! NRADELG: INTEGER : LENGTH IN HOURS DURING WHICH THE FREQUENCY OF RADIATION IS INCREASED FOR EPS
126! NOVLP  : INTEGER : CLOUD OVERLAP CONFIGURATION
127! NRPROMA: INTEGER : VECTOR LENGTH FOR RADIATION CALCULATIONS
128! NSW    : INTEGER : NUMBER OF SHORTWAVE SPECTRAL INTERVALS
129! NSWNL  : INTEGER : NUMBER OF SHORTWAVE SPECTRAL INTERVALS IN NL MODEL
130! NSWTL  : INTEGER : NUMBER OF SHORTWAVE SPECTRAL INTERVALS IN TL MODEL
131! NTSW   : INTEGER : MAXIMUM POSSIBLE NUMBER OF SW SPECTRAL INTERVALS
132! NUV    : INTEGER : NUMBER OF UV SPECTRAL INTERVALS FOR THE UV PROCESSOR   
133! LOPTRPROMA:LOGICAL: .T. NRPROMA will be optimised
134!                   : .F. NRPROMA will not be optimised (forced
135!                   :         by negative NRPROMA in namelist)
136
137! NRADIP : INTEGER : INDEX FOR DIAGNOSIS OF ICE CLOUD EFFECTIVE RADIUS
138!          0=EbCu/SmSh  1=EbCu/EbCu  2=FuLi/FuLi  3=Fu/Fu&al
139! NRADLP : INTEGER : INDEX FOR DIAGNOSIS OF LIQ. CLOUD EFFECTIVE RADIUS
140!          0=YF/SmSh    1=ASl/HSa    2=ASl/LiLi
141! NICEOPT: INTEGER : INDEX FOR ICE CLOUD OPTICAL PROPERTIES
142!          0=40u        1=40-130     2=30-60      3=Sun'01
143! NLIQOPT: INTEGER : INDEX FOR LIQUID WATER CLOUD OPTICAL PROPERTIES
144!          0=f(P)       1=10/13      2=Martin_et_al
145
146! LONEWSW: LOGICAL : .T. IF NEW SW CODE IS ACTIVE
147! LECSRAD: LOGICAL : .T. IF CLEAR-SKY RADIATION IS ARCHIVED AS PEXTR2
148! NCSRADF: INTEGER : 1 IF ACCUMULATED, 2 IF INSTANTANEOUS
149! LRRTM  : LOGICAL : .T. IF RRTM140MR IS USED FOR LW RADIATION TRANSFER
150
151! LHVOLCA: LOGICAL : .T. IF GISS HISTORY OF VOLCANIC AEROSOLS IS ON
152! LNEWAER: LOGICAL : .T. IF AEROSOL MONTHLY DISTRIBUTIONS ARE USED
153! LNOTROAER:LOGICAL: .T. IF NO TROPOSPHERIC AEROSOLS
154! CRTABLEDIR: CHAR : IF NRADINT > 0 SPECIFIES DIRECTORY PATH FOR RADIATION
155!                  : GRID RTABLE NAMELIST
156! CRTABLEFIL: CHAR : IF NRADINT > 0 SPECIFIES FILE NAME OF RADIATION
157!                  : GRID RTABLE NAMELIST
158! LRAYL  : LOGICAL : .T. NEW RAYLEIGH FOR SW-6 VERSION
159
160! RAOVLP : REAL    : COEFFICIENTS FOR ALPHA1 FACTOR IN HOGAN &
161! RBOVLP : REAL    : ILLINGWORTH's PARAMETRIZATION
162
163! LCCNL  : LOGICAL : .T. IF CCN CONCENTRATION OVER LAND IS DIAGNOSED
164! LCCNO  : LOGICAL : .T. IF CCN CONCENTRATION OVER OCEAN IS DIAGNOSED
165! RCCNLND: REAL    : NUMBER CONCENTRATION (CM-3) OF CCNs OVER LAND
166! RCCNSEA: REAL    : NUMBER CONCENTRATION (CM-3) OF CCNs OVER SEA
167
168! LDIFFC : LOGICAL : .T. IF SAVIJARVI'S DIFFUSIVITY CORRECTION IS ON
169
170! NINHOM : INTEGER : 0 IF NO INHOMOGENEITY SCALING EFFECT
171!                    1 IF SIMPLE 0.7 SCALING
172!                    2 IF BARKER, 3 IF CAIRNS ET AL.
173! RLWINHF: REAL    : INHOMOG. SCALING FACTOR FOR CLOUD LW OPTICAL THICKNESS
174! RSWINHF: REAL    : INHOMOG. SCALING FACTOR FOR CLOUD SW OPTICAL THICKNESS
175
176! NPERTAER : INTERGER : PERCENTAGE OF PERTURBATION FOR AEROSOL   
177! NPERTOZONE : INTEGER : PERCENTAGE OF PERTURBATION FOR OZONE
178! NHINCSOL:INTEGER :
179!        = 0 NO VARIABILITY OF SOLAR CONSTANT IS ACCOUNTED FOR
180!        = 1 IF YEAR-TO-YEAR VARIABILITY OF SOLAR CONSTANT IS ACCOUNTED FOR
181!        = 2 IF MONTH-TO-MONTH VARIABILITY OF SOLAR CONSTANT IS ACCOUNTED FOR
182!        = 3 IF YEAR-TO-YEAR VARIABILITY OF SOLAR CONSTANT IS ACCOUNTED FOR ACCORDING TO CMIP5 RECOMMENDATIONS
183! LECO2VAR: LOGICAL: .T. IF ERA-40/AMIP2 VARIABILITY OF GHG IS ON
184! LHGHG  : LOGICAL : .T. IF VARIABILITY OF GREENHOUSE GASES (INCLUDING CO2) IS ON
185! N.B.: LHGHG supercedes LECO2VAR and allows using better specification of trace gases
186! NSCEN  : INTEGER : 21st CENTURY SCENARIO FOR GHG (1=A1B, 2=A2, 3=B1)
187! RRe2De : REAL    : CONVERSION FACTOR BETWWEN EFFECTIVE RADIUS AND PARTICLE SIZE
188! RMINICE: REAL    : MINIMUM SIZE FOR ICE PARTICLES (um)
189!                    FOR ICE
190! NMINICE: INTEGER : 1-6 MINIMUM ICE PARTICLE SIZE DEPENDS ON LATITUDE, 0=INDEPENDENT OF LATITUDE
191! NDECOLAT:INTEGER : DECORRELATION LENGTH FOR CF AND CW
192!                     0: SPECIFIED INDEPENDENT OF LATITUDE, 1: SHONK-HOGAN, 2: IMPROVED
193! NMCICA : INTEGER :  0: NO McICA
194!                     1: McICA w maximum-random in cloud generator
195!                     2: McICA w generalized overlap in cloud generator
196! LESO4HIS: LOGICAL:.T.: Use historical/projected SO4 data per decade and month
197! NGHGRAD: INTEGER : configuration of 3D GHG climatologies accounted for in radiation
198!                     0: global values
199!                     1: CO2       2: CH4    3: N2O    4: NO2    5:CFC11   6:CFC12
200!                    12: CO2+CH4  13: CO2+CH4+N2O     
201!                    16: CO2+CH4+N2O+CFC11+CFC12
202! LETRACGMS: LOGICAL : F=Cariolle climatol. T=GEMS-derived clim for CO2, CH4, O3
203! LAERCLIM : LOGICAL : .T. for output of the climatological aerosol optical depth at 550 nm
204! LAERVISI : LOGICAL : .T. for output of the visibility (from diagnsotic or prognostic aerosols)
205! NVOLCVERT: INTEGER : Vertical distribution of volcanic aerosol
206!                       0: original profile, diagnosed from T
207!                       1: original profile, but upper boundary at 10hPa
208!                       2: lower boundary diagnosed from ozone, upper boundary at 10hPa
209! LVOLCSPEC: LOGICAL : T for specified volcanic aerosol
210! LVOLCDAMP: LOGICAL : T for damping of specified volcanic aerosol from initial value
211! RVOLCSPEC: REAL    : Specified volcanic aerosol (total optical depth) in NH/Tropics/SH
212! RNs                : derived from Avogadro
213! RSIGAIR: invariant terms in expression of Rayleigh scattering cross-section
214! NREDGSW  : LOGICAL : 0 full resolution for RRTM_SW (224)
215!                      1 ECMWF High resolution model configuration (_SW: 112)
216!                      2 ECMWF EPS configuration (_SW: 56)
217! NREDGLW  : LOGICAL : 0 full resolution for RRTM_LW (256)
218!                      1 ECMWF High resolution model configuration (_LW: 140)
219!                      2 ECMWF EPS configuration (_LW: 70)
220! LDIAGFORCING : LOGICAL : T Write input ozone, ghg and aerosol forcing to 3D fields
221!                            To be used for diagnostics only; do not use in production runs
222! LApproxLwUpdate : LOGICAL : Update the longwave upwelling flux every
223!                             timestep/gridpoint using the stored rate
224!                             of change of the fluxes with respect to
225!                             the surface upwelling longwave flux
226! LApproxSwUpdate : LOGICAL : Update the shortwave upwelling flux
227!                             every gridpoint to account for the local
228!                             value of surface albedo, and every
229!                             timestep using Manners et al. (2009)
230!                             correction for solar zenith angle change
231! LCentredTimeSZA : LOGICAL : Compute solar zenith angle in radiation
232!                             scheme half way between calls to
233!                             radiation scheme (rather than previous
234!                             behaviour, which is half way between
235!                             calls plus half a model timestep)
236! ------------------------------------------------------------------
237END MODULE YOERAD
Note: See TracBrowser for help on using the repository browser.