source: LMDZ5/trunk/libf/phylmd/cosp/cosp_constants.F90 @ 3831

Last change on this file since 3831 was 2955, checked in by musat, 7 years ago

Ajout modifs de Rodrigo Guzman et Marine Bonazolla dans la version COSP/CMIP6
IM

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
File size: 15.0 KB
Line 
1! (c) British Crown Copyright 2008, the Met Office.
2! All rights reserved.
3!
4! Redistribution and use in source and binary forms, with or without modification, are permitted
5! provided that the following conditions are met:
6!
7!     * Redistributions of source code must retain the above copyright notice, this list
8!       of conditions and the following disclaimer.
9!     * Redistributions in binary form must reproduce the above copyright notice, this list
10!       of conditions and the following disclaimer in the documentation and/or other materials
11!       provided with the distribution.
12!     * Neither the name of the Met Office nor the names of its contributors may be used
13!       to endorse or promote products derived from this software without specific prior written
14!       permission.
15!
16! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
17! IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
18! FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
19! CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20! DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21! DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
22! IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
23! OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
25!
26! History:
27! Jul 2007 - A. Bodas-Salcedo - Initial version
28! Jul 2008 - A. Bodas-Salcedo - Added definitions of ISCCP axes
29! Oct 2008 - H. Chepfer       - Added PARASOL_NREFL
30! Jun 2010 - R. Marchand      - Modified to support quickbeam V3, added ifdef for hydrometeor definitions
31!
32!
33!
34
35#include "cosp_defs.h"
36MODULE MOD_COSP_CONSTANTS
37    IMPLICIT NONE
38
39    character(len=32) :: COSP_VERSION='COSP v1.4'
40
41    ! Indices to address arrays of LS and CONV hydrometeors
42    integer,parameter :: I_LSCLIQ = 1
43    integer,parameter :: I_LSCICE = 2
44    integer,parameter :: I_LSRAIN = 3
45    integer,parameter :: I_LSSNOW = 4
46    integer,parameter :: I_CVCLIQ = 5
47    integer,parameter :: I_CVCICE = 6
48    integer,parameter :: I_CVRAIN = 7
49    integer,parameter :: I_CVSNOW = 8
50    integer,parameter :: I_LSGRPL = 9
51
52    ! Missing value
53    real,parameter :: R_UNDEF = -1.0E30
54
55    ! Number of possible output variables
56    integer,parameter :: N_OUT_LIST = 74 !OPAQ 65+7 !TIBO 72+2
57    integer,parameter :: N3D = 11                   !TIBO 10+1
58    integer,parameter :: N2D = 19        !OPAQ 14+4 !TIBO 18+1
59    integer,parameter :: N1D = 43        !OPAQ 40+3
60
61    ! Value for forward model result from a level that is under the ground
62    real,parameter :: R_GROUND = -1.0E20
63
64    ! Stratiform and convective clouds in frac_out
65    integer, parameter :: I_LSC = 1, & ! Large-scale clouds
66                          I_CVC = 2    ! Convective clouds
67
68    ! Timing of different simulators, including statistics module
69    integer, parameter :: N_SIMULATORS = 7
70    integer,parameter :: I_RADAR = 1
71    integer,parameter :: I_LIDAR = 2
72    integer,parameter :: I_ISCCP = 3
73    integer,parameter :: I_MISR  = 4
74    integer,parameter :: I_MODIS = 5
75    integer,parameter :: I_RTTOV = 6
76    integer,parameter :: I_STATS = 7
77    character*32, dimension(N_SIMULATORS) :: SIM_NAME = (/'Radar','Lidar','ISCCP','MISR ','MODIS','RTTOV','Stats'/)
78    integer,dimension(N_SIMULATORS) :: tsim
79    data tsim/N_SIMULATORS*0.0/
80
81    !--- Radar constants
82    ! CFAD constants
83    integer,parameter :: DBZE_BINS     =   15   ! Number of dBZe bins in histogram (cfad)
84    real,parameter    :: DBZE_MIN      = -100.0 ! Minimum value for radar reflectivity
85    real,parameter    :: DBZE_MAX      =   80.0 ! Maximum value for radar reflectivity
86    real,parameter    :: CFAD_ZE_MIN   =  -50.0 ! Lower value of the first CFAD Ze bin
87    real,parameter    :: CFAD_ZE_WIDTH =    5.0 ! Bin width (dBZe)
88
89
90    !--- Lidar constants
91    ! CFAD constants
92    integer,parameter :: SR_BINS       =   15
93    integer,parameter :: DPOL_BINS     =   6
94    real,parameter    :: LIDAR_UNDEF   =   999.999
95
96    ! Other constants
97    integer,parameter :: LIDAR_NCAT    =   4
98    integer,parameter :: LIDAR_NTYPE   =   3 !OPAQ
99    integer,parameter :: PARASOL_NREFL =   5 ! parasol
100    real,parameter,dimension(PARASOL_NREFL) :: PARASOL_SZA = (/0.0, 20.0, 40.0, 60.0, 80.0/)
101    real,parameter    :: DEFAULT_LIDAR_REFF = 30.0e-6 ! Default lidar effective radius
102
103    integer,parameter :: LIDAR_NTEMP = 40
104    real,parameter,dimension(LIDAR_NTEMP) :: LIDAR_PHASE_TEMP=(/-91.5,-88.5,-85.5,-82.5,-79.5,-76.5,-73.5,-70.5,-67.5,-64.5, &
105                   -61.5,-58.5,-55.5,-52.5,-49.5,-46.5,-43.5,-40.5,-37.5,-34.5, &
106                   -31.5,-28.5,-25.5,-22.5,-19.5,-16.5,-13.5,-10.5, -7.5, -4.5, &
107                    -1.5,  1.5,  4.5,  7.5, 10.5, 13.5, 16.5, 19.5, 22.5, 25.5/)
108    real,parameter,dimension(2,LIDAR_NTEMP) :: LIDAR_PHASE_TEMP_BNDS=reshape(source=(/-273.15,-90.,-90.,-87.,-87.,-84.,-84.,-81.,-81.,-78., &
109                   -78.,-75.,-75.,-72.,-72.,-69.,-69.,-66.,-66.,-63., &
110                   -63.,-60.,-60.,-57.,-57.,-54.,-54.,-51.,-51.,-48., &
111                   -48.,-45.,-45.,-42.,-42.,-39.,-39.,-36.,-36.,-33., &
112                   -33.,-30.,-30.,-27.,-27.,-24.,-24.,-21.,-21.,-18., &
113                   -18.,-15.,-15.,-12.,-12., -9., -9., -6., -6., -3., &
114                    -3.,  0.,  0.,  3.,  3.,  6.,  6.,  9.,  9., 12., &
115                    12., 15., 15., 18., 18., 21., 21., 24., 24.,100./),shape=(/2,40/))
116
117    !--- MISR constants
118    integer,parameter :: MISR_N_CTH = 16
119
120    !--- RTTOV constants
121    integer,parameter :: RTTOV_MAX_CHANNELS = 20
122
123    ! ISCCP tau-Pc axes
124    real,parameter,dimension(7) :: ISCCP_TAU = (/0.15, 0.80, 2.45, 6.5, 16.2, 41.5, 100.0/)
125    real,parameter,dimension(2,7) :: ISCCP_TAU_BNDS = reshape(source=(/0.0,0.3,0.3,1.30,1.30,3.6,3.6,9.4, &
126                                                      9.4,23.0,23.0,60.0,60.0,100000.0/), shape=(/2,7/))
127
128    real,parameter,dimension(7) :: ISCCP_PC = (/90000., 74000., 62000., 50000., 37500., 24500., 9000./)
129    real,parameter,dimension(2,7) :: ISCCP_PC_BNDS = reshape(source=(/100000.0,80000.0,80000.0,68000.0,68000.0,56000.0 &
130                               ,56000.0,44000.0,44000.0,31000.0,31000.0,18000.0,18000.0,0.0/), shape=(/2,7/))
131
132    real,parameter,dimension(MISR_N_CTH) :: MISR_CTH = 1000.0*(/ 0., 0.25, 0.75, 1.25, 1.75, 2.25, 2.75, 3.5, &
133                                            4.5, 6., 8., 10., 12., 14.5, 16., 18./)
134    real,parameter,dimension(2,MISR_N_CTH) :: MISR_CTH_BNDS = 1000.0*reshape(source=(/ &
135                                            -99.0,  0.0,       0.0,  0.5,       0.5,  1.0,      1.0,  1.5, &
136                                              1.5,  2.0,       2.0,  2.5,       2.5,  3.0,      3.0,  4.0, &
137                                              4.0,  5.0,       5.0,  7.0,       7.0,  9.0,      9.0, 11.0, &
138                                             11.0, 13.0,      13.0, 15.0,      15.0, 17.0,     17.0, 99.0/), &
139                                             shape=(/2,MISR_N_CTH/))
140
141
142    !
143    ! The following code was modifed by Roj with implementation of quickbeam V3
144    !   (1) use ifdef to support more than one microphyscis scheme
145    !   (2) added constants  microphysic_scheme_name, LOAD_scale_LUTs, and SAVE_scale_LUTs
146    !
147
148    ! directory where LUTs will be stored
149    character*120 :: RADAR_SIM_LUT_DIRECTORY = './'
150
151#ifdef MMF_V3_SINGLE_MOMENT
152
153    !       
154    !  Table hclass for quickbeam to support one-moment (bulk) microphysics scheme used by MMF V3.0 & V3.5
155    !
156
157    !
158    ! NOTE:  if ANY value in this section of code is changed, the existing LUT
159    !        (i.e., the associated *.dat file) MUST be deleted so that a NEW
160    !        LUT will be created !!!
161    !
162    character*120 :: RADAR_SIM_MICROPHYSICS_SCHEME_NAME = 'MMF_v3_single_moment'
163
164    logical :: RADAR_SIM_LOAD_scale_LUTs_flag   = .false.
165    logical :: RADAR_SIM_UPDATE_scale_LUTs_flag = .false.
166    integer,parameter :: N_HYDRO = 9
167
168    integer :: HCLASS_TYPE(N_HYDRO),HCLASS_PHASE(N_HYDRO)
169
170    real :: HCLASS_DMIN(N_HYDRO),HCLASS_DMAX(N_HYDRO), &
171            HCLASS_APM(N_HYDRO),HCLASS_BPM(N_HYDRO),HCLASS_RHO(N_HYDRO), &
172            HCLASS_P1(N_HYDRO),HCLASS_P2(N_HYDRO),HCLASS_P3(N_HYDRO)
173
174    ! HCLASS_CP is not used in the version of Quickbeam included in COSP
175    !                   LSL    LSI      LSR     LSS   CVL    CVI   CVR     CVS   LSG
176    data HCLASS_TYPE/    5,      1,      2,      2,     5,     1,   2,      2,    2/
177    data HCLASS_PHASE/   0,      1,      0,      1,     0,     1,   0,      1,    1/
178    data HCLASS_DMIN/   -1,     -1,     -1,     -1,    -1,    -1,   -1,    -1,   -1/
179    data HCLASS_DMAX/   -1,     -1,     -1,     -1,    -1,    -1,   -1,    -1,   -1/
180    data HCLASS_APM/   524,  110.8,    524,     -1,   524, 110.8,  524,    -1,   -1/
181    data HCLASS_BPM/     3,   2.91,      3,     -1,     3,  2.91,    3,    -1,   -1/
182    data HCLASS_RHO/    -1,     -1,     -1,    100,    -1,    -1,   -1,   100,  400/
183    data HCLASS_P1/     -1,     -1,   8.e6,   3.e6,    -1,    -1, 8.e6,  3.e6, 4.e6/
184    data HCLASS_P2/      6,     40,     -1,      -1,    6,    40,   -1,    -1,   -1/
185    data HCLASS_P3/    0.3,      2,     -1,      -1,  0.3,     2,   -1,    -1,   -1/
186
187    ! NOTES on HCLASS variables
188    !
189    ! TYPE - Set to
190    ! 1 for modified gamma distribution,
191    ! 2 for exponential distribution,
192    ! 3 for power law distribution,
193    ! 4 for monodisperse distribution,
194    ! 5 for lognormal distribution.
195
196    ! PHASE - Set to 0 for liquid, 1 for ice.
197
198    ! DMIN - The minimum drop size for this class (micron), ignored for monodisperse.
199    ! DMAX - The maximum drop size for this class (micron), ignored for monodisperse.
200    ! Important note: The settings for DMIN and DMAX are
201    ! ignored in the current version for all distributions except for power
202    ! law. Except when the power law distribution is used, particle size
203    ! is fixed to vary from zero to infinity, a restriction that is expected
204    ! to be lifted in future versions. A placeholder must still be specified
205    ! for each.
206
207    ! Density of particles is given by apm*D^bpm or a fixed value rho. ONLY specify ONE of these two!!
208    ! APM - The alpha_m coefficient in equation (1) (kg m**-beta_m )
209    ! BPM - The beta_m coefficient in equation (1), see section 4.1.
210
211    ! RHO - Hydrometeor density (kg m-3 ).
212
213    ! P1, P2, P3 - are default distribution parameters that depend on the type
214    ! of distribution (see quickmbeam documentation for more information)
215    !
216    ! Modified Gamma (must set P3 and one of P1 or P2)
217    ! P1 - Set to the total particle number concentration Nt /rho_a (kg-1 ), where
218    ! rho_a is the density of air in the radar volume.
219    ! P2 - Set to the particle mean diameter D (micron).
220    ! P3 - Set to the distribution width nu.
221    !
222    ! Exponetial (set one of)
223    ! P1 - Set to a constant intercept parameter N0 (m-4).
224    ! P2 - Set to a constant lambda (micron-1).
225    !
226    ! Power Law
227    ! P1 - Set this to the value of a constant power law parameter br
228    !
229    ! Monodisperse
230    ! P1 - Set to a constant diameter D0 (micron) = Re.
231    !
232    ! Log-normal (must set P3 and one of P1 or P2)
233    ! P1 - Set to the total particle number concentration Nt /rho_a (kg-1 )
234    ! P2 - Set to the geometric mean particle radius rg (micron).
235    ! P3 - Set to the natural logarithm of the geometric standard deviation.
236    !
237
238
239    real,dimension(N_HYDRO) :: N_ax,N_bx,alpha_x,c_x,d_x,g_x,a_x,b_x,gamma_1,gamma_2,gamma_3,gamma_4
240
241    ! Microphysical settings for the precipitation flux to mixing ratio conversion
242    !                LSL    LSI       LSR       LSS   CVL    CVI       CVR       CVS      LSG
243    data N_ax/       -1.,   -1.,     8.e6,     3.e6,  -1.,   -1.,     8.e6,     3.e6,     4.e6/
244    data N_bx/       -1.,   -1.,      0.0,      0.0,  -1.,   -1.,      0.0,      0.0,      0.0/
245    data alpha_x/    -1.,   -1.,      0.0,      0.0,  -1.,   -1.,      0.0,      0.0,      0.0/
246    data c_x/        -1.,   -1.,    842.0,     4.84,  -1.,   -1.,    842.0,     4.84,     94.5/
247    data d_x/        -1.,   -1.,      0.8,     0.25,  -1.,   -1.,      0.8,     0.25,      0.5/
248    data g_x/        -1.,   -1.,      0.5,      0.5,  -1.,   -1.,      0.5,      0.5,      0.5/
249    data a_x/        -1.,   -1.,    524.0,    52.36,  -1.,   -1.,    524.0,    52.36,   209.44/
250    data b_x/        -1.,   -1.,      3.0,      3.0,  -1.,   -1.,      3.0,      3.0,      3.0/
251    data gamma_1/    -1.,   -1., 17.83725, 8.284701,  -1.,   -1., 17.83725, 8.284701, 11.63230/
252    data gamma_2/    -1.,   -1.,      6.0,      6.0,  -1.,   -1.,      6.0,      6.0,      6.0/
253    data gamma_3/    -1.,   -1.,      2.0,      2.0,  -1.,   -1.,      2.0,      2.0,      2.0/
254    data gamma_4/    -1.,   -1.,      6.0,      6.0,  -1.,   -1.,      6.0,      6.0,      6.0/
255
256
257
258#endif
259
260
261#ifdef MMF_V3p5_TWO_MOMENT
262
263    !
264    !  Table hclass for quickbeam to support two-moment "morrison" microphysics scheme used by V3.5 (SAM 6.8)
265    !
266    !  This Number concentriation Np in [1/kg] MUST be input to COSP/radar simulator
267    !
268    !  NOTE:  Be sure to check that the ice-density (rho) set it this tables matches what you used
269    !
270
271    !
272    ! NOTE:  if ANY value in this section of code is changed, the existing LUT
273    !        (i.e., the associated *.dat file) MUST be deleted so that a NEW
274    !        LUT will be created !!!
275    !
276    character*120 :: RADAR_SIM_MICROPHYSICS_SCHEME_NAME = 'MMF_v3.5_two_moment'
277
278    logical :: RADAR_SIM_LOAD_scale_LUTs_flag   = .false.
279    logical :: RADAR_SIM_UPDATE_scale_LUTs_flag = .false.
280
281    integer,parameter :: N_HYDRO = 9
282
283    integer :: HCLASS_TYPE(N_HYDRO),HCLASS_PHASE(N_HYDRO)
284
285    real :: HCLASS_DMIN(N_HYDRO),HCLASS_DMAX(N_HYDRO), &           
286            HCLASS_APM(N_HYDRO),HCLASS_BPM(N_HYDRO),HCLASS_RHO(N_HYDRO), &
287            HCLASS_P1(N_HYDRO),HCLASS_P2(N_HYDRO),HCLASS_P3(N_HYDRO)
288
289    ! HCLASS_CP is not used in the version of Quickbeam included in COSP
290    !                   LSL    LSI      LSR     LSS   CVL    CVI   CVR     CVS   LSG
291    data HCLASS_TYPE/    1,      1,      1,      1,     1,     1,    1,      1,    1/
292    data HCLASS_PHASE/   0,      1,      0,      1,     0,     1,    0,      1,    1/
293    data HCLASS_DMIN/   -1,     -1,     -1,     -1,    -1,    -1,   -1,     -1,   -1/
294    data HCLASS_DMAX/   -1,     -1,     -1,     -1,    -1,    -1,   -1,     -1,   -1/
295    data HCLASS_APM/   524,     -1,    524,     -1,   524,    -1,  524,     -1,   -1/
296    data HCLASS_BPM/     3,     -1,      3,     -1,     3,    -1,    3,     -1,   -1/
297    data HCLASS_RHO/    -1,    500,     -1,    100,    -1,   500,   -1,    100,  900/
298    data HCLASS_P1/     -1,     -1,     -1,     -1,    -1,    -1,   -1,     -1,   -1/
299    data HCLASS_P2/     -1,     -1,     -1,     -1,    -1,    -1,   -1,     -1,   -1/
300    data HCLASS_P3/     -2,      1,      1,      1,    -2,     1,    1,      1,    1/
301    ! Note: value of "-2" for HCLASS_P3 uses martin 1994 parameteriztion of gamma function width with Number concentration
302#endif
303
304END MODULE MOD_COSP_CONSTANTS
Note: See TracBrowser for help on using the repository browser.