LMDZ
cosp_constants.F90
Go to the documentation of this file.
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 !
31 !
33  use netcdf, only: nf90_fill_real
34  IMPLICIT NONE
35 
36  ! Indices to address arrays of LS and CONV hydrometeors
37  integer,parameter :: i_lscliq = 1
38  integer,parameter :: i_lscice = 2
39  integer,parameter :: i_lsrain = 3
40  integer,parameter :: i_lssnow = 4
41  integer,parameter :: i_cvcliq = 5
42  integer,parameter :: i_cvcice = 6
43  integer,parameter :: i_cvrain = 7
44  integer,parameter :: i_cvsnow = 8
45  integer,parameter :: i_lsgrpl = 9
46 
47  ! Missing value
48 !! real,parameter :: R_UNDEF = -1.0E30
49 ! real,parameter :: R_UNDEF = 9.96921e+36
50  real,parameter :: r_undef = nf90_fill_real
51 
52  ! Number of possible output variables
53  integer,parameter :: n_out_list = 27
54  ! Value for forward model result from a level that is under the ground
55  real,parameter :: r_ground = -1.0e20
56 
57  ! Stratiform and convective clouds in frac_out
58  integer, parameter :: i_lsc = 1, & ! Large-scale clouds
59  i_cvc = 2 ! Convective clouds
60 
61  !--- Radar constants
62  ! CFAD constants
63  integer,parameter :: dbze_bins = 15 ! Number of dBZe bins in histogram (cfad)
64  real,parameter :: dbze_min = -100.0 ! Minimum value for radar reflectivity
65  real,parameter :: dbze_max = 80.0 ! Maximum value for radar reflectivity
66  real,parameter :: cfad_ze_min = -50.0 ! Lower value of the first CFAD Ze bin
67  real,parameter :: cfad_ze_width = 5.0 ! Bin width (dBZe)
68 
69 
70  !--- Lidar constants
71  ! CFAD constants
72  integer,parameter :: sr_bins = 15
73  integer,parameter :: dpol_bins = 6
74  real,parameter :: lidar_undef = 999.999
75  ! Other constants
76  integer,parameter :: lidar_ncat = 4
77  integer,parameter :: parasol_nrefl = 5 ! parasol
78  real,parameter,dimension(PARASOL_NREFL) :: parasol_sza = (/0.0, 20.0, 40.0, 6.0, 80.0/)
79 ! real,parameter,dimension(PARASOL_NREFL) :: PARASOL_SZA = (/1.0, 2.0, 3.0, 4.0, 5.0/)
80  real,parameter :: default_lidar_reff = 30.0e-6 ! Default lidar effective radius
81 
82  !--- MISR constants
83  integer,parameter :: misr_n_cth = 16
84 
85  !--- RTTOV constants
86  integer,parameter :: rttov_max_channels = 20
87 
88  ! ISCCP tau-Pc axes
89  real,parameter,dimension(7) :: isccp_tau = (/0.15, 0.80, 2.45, 6.5, 16.2, 41.5, 50000.0/)
90  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, &
91  9.4,23.0,23.0,60.0,60.0,100000.0/), shape=(/2,7/))
92 
93 ! real,parameter,dimension(7) :: ISCCP_PC = (/9000., 24500., 37500., 50000., 62000., 74000., 90000./)
94 ! real,parameter,dimension(2,7) :: ISCCP_PC_BNDS = reshape(source=(/0.0,18000.0,18000.0,31000.0,31000.0, &
95 ! 44000.0,44000.0,56000.0,56000.0,68000.0,68000.0,80000.0,80000.0,100000.0/), shape=(/2,7/))
96 
97  real,parameter,dimension(7) :: isccp_pc = (/90000., 74000., 62000., 50000., 37500., 24500., 9000./)
98  real,parameter,dimension(2,7) :: isccp_pc_bnds = reshape(source=(/100000.0,80000.0,80000.0,68000.0,68000.0,56000.0 &
99  ,56000.0,44000.0,44000.0,31000.0,31000.0,18000.0,18000.0,0.0/), shape=(/2,7/))
100 
101  real,parameter,dimension(MISR_N_CTH) :: misr_cth = (/ 0., 0.25, 0.75, 1.25, 1.75, 2.25, 2.75, 3.5, &
102  4.5, 6., 8., 10., 12., 14.5, 16., 18./)
103  real,parameter,dimension(2,MISR_N_CTH) :: misr_cth_bnds = reshape(source=(/ &
104  -99.0, 0.0, 0.0, 0.5, 0.5, 1.0, 1.0, 1.5, &
105  1.5, 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 4.0, &
106  4.0, 5.0, 5.0, 7.0, 7.0, 9.0, 9.0, 11.0, &
107  11.0, 13.0, 13.0, 15.0, 15.0, 17.0, 17.0, 99.0/), &
108  shape=(/2,misr_n_cth/))
109 
110  ! Table hclass for quickbeam
111  integer,parameter :: n_hydro = 9
116  data hclass_type/5,1,2,2,5,1,2,2,2/
117  data hclass_col/1,2,3,4,5,6,7,8,9/
118  data hclass_phase/0,1,0,1,0,1,0,1,1/
119  data hclass_cp/0,0,1,1,0,0,1,1,1/
120  data hclass_dmin/-1,-1,-1,-1,-1,-1,-1,-1,-1/
121  data hclass_dmax/-1,-1,-1,-1,-1,-1,-1,-1,-1/
122  data hclass_apm/524,110.8,524,-1,524,110.8,524,-1,-1/
123  data hclass_bpm/3,2.91,3,-1,3,2.91,3,-1,-1/
124  data hclass_rho/-1,-1,-1,100,-1,-1,-1,100,400/
125  data hclass_p1/-1,-1,8000000.,3000000.,-1,-1,8000000.,3000000.,4000000./
126  data hclass_p2/6,40,-1,-1,6,40,-1,-1,-1/
127  data hclass_p3/0.3,2,-1,-1,0.3,2,-1,-1,-1/
128 
129 
130 
131 END MODULE mod_cosp_constants
real, dimension(n_hydro) hclass_type
real, dimension(n_hydro) hclass_p2
real, dimension(n_hydro) hclass_dmax
integer, parameter i_cvsnow
real, dimension(n_hydro) hclass_rho
integer, parameter i_lsrain
integer, parameter parasol_nrefl
integer, parameter n_hydro
real, dimension(n_hydro) hclass_cp
integer, parameter n_out_list
integer, parameter i_cvc
integer, parameter i_cvcliq
real, dimension(n_hydro) hclass_col
real, parameter cfad_ze_width
real, dimension(2, misr_n_cth), parameter misr_cth_bnds
integer, parameter sr_bins
integer, parameter dpol_bins
real, dimension(n_hydro) hclass_p3
integer, parameter i_lsc
integer, parameter i_lsgrpl
integer, parameter dbze_bins
integer, parameter lidar_ncat
real, dimension(n_hydro) hclass_phase
integer, parameter i_lscliq
real, parameter lidar_undef
real, dimension(2, 7), parameter isccp_pc_bnds
integer, parameter i_lssnow
real, parameter default_lidar_reff
integer, parameter i_cvrain
integer, parameter i_lscice
real, dimension(n_hydro) hclass_p1
integer, parameter rttov_max_channels
real, dimension(misr_n_cth), parameter misr_cth
real, dimension(7), parameter isccp_tau
real, dimension(n_hydro) hclass_dmin
real, dimension(7), parameter isccp_pc
real, dimension(2, 7), parameter isccp_tau_bnds
real, parameter r_undef
real, parameter dbze_max
real, parameter r_ground
real, parameter dbze_min
integer, parameter misr_n_cth
integer, parameter i_cvcice
real, dimension(n_hydro) hclass_apm
real, parameter cfad_ze_min
real, dimension(n_hydro) hclass_bpm
real, dimension(parasol_nrefl), parameter parasol_sza