source: LMDZ6/branches/LMDZ-COSP/libf/phylmd/cospv2/src/cosp_config.F90.or @ 5917

Last change on this file since 5917 was 5917, checked in by idelkadi, 5 hours ago

Nouveau répertoire cospv2 avec la même structure offline

  • Property svn:executable set to *
File size: 30.6 KB
Line 
1! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2! Copyright (c) 2015, Regents of the University of Colorado
3! All rights reserved.
4!
5! Redistribution and use in source and binary forms, with or without modification, are
6! permitted provided that the following conditions are met:
7!
8! 1. Redistributions of source code must retain the above copyright notice, this list of
9!    conditions and the following disclaimer.
10!
11! 2. Redistributions in binary form must reproduce the above copyright notice, this list
12!    of conditions and the following disclaimer in the documentation and/or other
13!    materials provided with the distribution.
14!
15! 3. Neither the name of the copyright holder nor the names of its contributors may be
16!    used to endorse or promote products derived from this software without specific prior
17!    written permission.
18!
19! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
20! EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21! MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
22! THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23! SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
24! OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
25! INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26! LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27! OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28!
29! History:
30! Jul 2007 - A. Bodas-Salcedo - Initial version
31! Jul 2008 - A. Bodas-Salcedo - Added definitions of ISCCP axes
32! Oct 2008 - H. Chepfer       - Added PARASOL_NREFL
33! Jun 2010 - R. Marchand      - Modified to support quickbeam V3, added ifdef for 
34!                               hydrometeor definitions
35! May 2015 - D. Swales        - Tidied up. Set up appropriate fields during initialization.
36! June 2015- D. Swales        - Moved hydrometeor class variables to hydro_class_init in
37!                               the module quickbeam_optics.
38! Mar 2016 - D. Swales        - Added scops_ccfrac. Was previously hardcoded in prec_scops.f90. 
39! Mar 2018 - R. Guzman        - Added LIDAR_NTYPE for the OPAQ diagnostics
40! Apr 2018 - R. Guzman        - Added parameters for GROUND LIDAR and ATLID simulators
41! Nov 2018 - T. Michibata     - Added CloudSat+MODIS Warmrain Diagnostics
42! Mar 2024 - C. Wall          - Added MODIS joint-histogram diagnostics
43!
44! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45
46MODULE MOD_COSP_CONFIG
47    USE COSP_KINDS, ONLY: wp,dp
48    IMPLICIT NONE
49
50   ! #####################################################################################
51   ! Common COSP information
52   ! #####################################################################################
53    character(len=32) ::   &
54         COSP_VERSION              ! COSP Version ID (set in cosp_interface_init)
55    real(wp),parameter ::  &
56         R_UNDEF      = -1.0E30, & ! Missing value
57         R_GROUND     = -1.0E20, & ! Flag for below ground results
58         scops_ccfrac = 0.05       ! Fraction of column (or subcolumn) covered with convective
59                                   ! precipitation (default is 5%). *NOTE* This quantity may vary
60                                   ! between modeling centers.
61    logical :: &
62         use_vgrid                 ! True=Use new grid for L3 CLOUDAT and CALIPSO
63    integer,parameter ::   &
64         SR_BINS = 15,           & ! Number of bins (backscattering coefficient) in CALOPSO LIDAR simulator.
65         N_HYDRO = 9               ! Number of hydrometeor classes used by quickbeam radar simulator.
66
67    ! #################################################################################### 
68    ! Joint histogram bin-boundaries
69    ! tau is used by ISCCP and MISR
70    ! pres is used by ISCCP
71    ! hgt is used by MISR
72    ! ReffLiq is used by MODIS
73    ! ReffIce is used by MODIS
74    ! *NOTE* ALL JOINT-HISTOGRAM BIN BOUNDARIES ARE DECLARED AND DEFINED HERE IN
75    !        COSP_CONFIG, WITH THE EXCEPTION OF THE TAU AXIS USED BY THE MODIS SIMULATOR,
76    !        WHICH IS SET DURING INITIALIZATION IN COSP_INTERFACE_INIT.
77    ! ####################################################################################
78    ! Optical depth bin axis
79    integer,parameter :: &
80         ntau=7 
81    real(wp),parameter,dimension(ntau+1) :: &
82       tau_binBounds = (/0.0, 0.3, 1.3, 3.6, 9.4, 23., 60., 10000./)
83    real(wp),parameter,dimension(ntau) :: &
84         tau_binCenters = (/0.15, 0.80, 2.45, 6.5, 16.2, 41.5, 100.0/)
85    real(wp),parameter,dimension(2,ntau) :: &
86         tau_binEdges = reshape(source=(/0.0, 0.3,  0.3,  1.3,  1.3,  3.6,      3.6,     &
87                                         9.4, 9.4, 23.0, 23.0, 60.0, 60.0, 100000.0/),   &
88                                         shape=(/2,ntau/))
89
90    ! Optical depth bin axes (ONLY USED BY MODIS SIMULATOR IN v1.4)
91    integer :: l,k
92    integer,parameter :: &
93         ntauV1p4 = 6
94    real(wp),parameter,dimension(ntauV1p4+1) :: &
95         tau_binBoundsV1p4 = (/0.3, 1.3, 3.6, 9.4, 23., 60., 10000./)
96    real(wp),parameter,dimension(2,ntauV1p4) :: &
97         tau_binEdgesV1p4 = reshape(source =(/tau_binBoundsV1p4(1),((tau_binBoundsV1p4(k),l=1,2),   &
98                                             k=2,ntauV1p4),100000._wp/),shape = (/2,ntauV1p4/))
99    real(wp),parameter,dimension(ntauV1p4) :: &
100         tau_binCentersV1p4 = (tau_binEdgesV1p4(1,:)+tau_binEdgesV1p4(2,:))/2._wp 
101   
102    ! Cloud-top height pressure bin axis
103    integer,parameter :: &
104         npres = 7     
105    real(wp),parameter,dimension(npres+1) :: &
106         pres_binBounds = (/0., 180., 310., 440., 560., 680., 800., 10000./)
107    real(wp),parameter,dimension(npres) :: &
108         pres_binCenters = (/90000., 74000., 62000., 50000., 37500., 24500., 9000./)   
109    real(wp),parameter,dimension(2,npres) :: &
110         pres_binEdges = reshape(source=(/100000.0, 80000.0, 80000.0, 68000.0, 68000.0,    &
111                                           56000.0, 56000.0, 44000.0, 44000.0, 31000.0,    &
112                                           31000.0, 18000.0, 18000.0,     0.0/),           &
113                                           shape=(/2,npres/))
114
115    ! Cloud-top height bin axis #1
116    integer,parameter :: &
117         nhgt = 16
118    real(wp),parameter,dimension(nhgt+1) :: &
119         hgt_binBounds = (/-.99,0.,0.5,1.,1.5,2.,2.5,3.,4.,5.,7.,9.,11.,13.,15.,17.,99./)
120    real(wp),parameter,dimension(nhgt) :: &
121         hgt_binCenters = 1000*(/0.,0.25,0.75,1.25,1.75,2.25,2.75,3.5,4.5,6.,8.,10.,12.,   &
122         14.5,16.,18./) 
123    real(wp),parameter,dimension(2,nhgt) :: &
124         hgt_binEdges = 1000.0*reshape(source=(/-99.0, 0.0, 0.0, 0.5, 0.5, 1.0, 1.0, 1.5,  &
125                                                  1.5, 2.0, 2.0, 2.5, 2.5, 3.0, 3.0, 4.0,  &
126                                                  4.0, 5.0, 5.0, 7.0, 7.0, 9.0, 9.0,11.0,  &
127                                                  11.0,13.0,13.0,15.0,15.0,17.0,17.0,99.0/),&
128                                                  shape=(/2,nhgt/))   
129
130    ! Liquid and Ice particle bins for MODIS joint histogram of optical-depth and particle
131    ! size
132    ! Bin edges match Pincus et al. 2023 observational data (doi:10.5194/essd-15-2483-2023)
133    ! Additional Re bins to capture all simulated clouds
134    integer :: i,j
135    integer,parameter :: &
136         nReffLiq = 8, & ! Number of ReffLiq bins for tau/ReffLiq and LWP/ReffLiq joint-histogram
137         nReffIce = 8 ! Number of ReffIce bins for tau/ReffICE and IWP/ReffIce joint-histogram
138    real(wp),parameter,dimension(nReffLiq+1) :: &
139         reffLIQ_binBounds = (/0.0, 4.0e-6, 8e-6, 1.0e-5, 1.25e-5, 1.5e-5, 2.0e-5, 3.0e-5, 1.0e-2/)
140    real(wp),parameter,dimension(nReffIce+1) :: &
141         reffICE_binBounds = (/0.0,5.0e-6, 1.0e-5, 2.0e-5, 3.0e-5, 4.0e-5, 5.0e-5, 6.0e-5, 1.0e-2/)
142    real(wp),parameter,dimension(2,nReffICE) :: &
143         reffICE_binEdges = reshape(source=(/reffICE_binBounds(1),((reffICE_binBounds(k),  &
144                                    l=1,2),k=2,nReffICE),reffICE_binBounds(nReffICE+1)/),  &
145                                    shape = (/2,nReffICE/))
146    real(wp),parameter,dimension(2,nReffLIQ) :: &
147         reffLIQ_binEdges = reshape(source=(/reffLIQ_binBounds(1),((reffLIQ_binBounds(k),  &
148                                    l=1,2),k=2,nReffLIQ),reffLIQ_binBounds(nReffLIQ+1)/),  &
149                                    shape = (/2,nReffLIQ/))             
150    real(wp),parameter,dimension(nReffICE) :: &
151         reffICE_binCenters = (reffICE_binEdges(1,:)+reffICE_binEdges(2,:))/2._wp
152    real(wp),parameter,dimension(nReffLIQ) :: &
153         reffLIQ_binCenters = (reffLIQ_binEdges(1,:)+reffLIQ_binEdges(2,:))/2._wp
154
155    ! LWP and IWP bins for MODIS joint histogram of (1) LWP and droplet size
156    ! and (2) IWP and particle size
157    integer, parameter :: &
158         nLWP = 7, & ! Number of bins for LWP/ReffLiq joint-histogram
159         nIWP = 7    ! Number of bins for IWP/ReffIce joint-histogram
160    real(wp),parameter,dimension(nLWP+1) :: &
161         LWP_binBounds = (/0., 0.01, 0.03, 0.06, 0.10, 0.15, 0.25, 20.0/) ! kg/m2
162    real(wp),parameter,dimension(nIWP+1) :: &
163         IWP_binBounds = (/0., 0.02, 0.05, 0.10, 0.20, 0.40, 1.00, 20.0/) ! kg/m2
164    real(wp),parameter,dimension(2,nLWP) :: &
165         LWP_binEdges = reshape(source=(/LWP_binBounds(1),((LWP_binBounds(k),  &
166                                l=1,2),k=2,nLWP),LWP_binBounds(nLWP+1)/),  &
167                                shape = (/2,nLWP/))
168    real(wp),parameter,dimension(2,nIWP) :: &
169         IWP_binEdges = reshape(source=(/IWP_binBounds(1),((IWP_binBounds(k),  &
170                                l=1,2),k=2,nIWP),IWP_binBounds(nIWP+1)/),  &
171                                shape = (/2,nIWP/))
172    real(wp),parameter,dimension(nLWP) :: &
173         LWP_binCenters = (LWP_binEdges(1,:)+LWP_binEdges(2,:))/2._wp
174    real(wp),parameter,dimension(nIWP) :: &
175         IWP_binCenters = (IWP_binEdges(1,:)+IWP_binEdges(2,:))/2._wp
176    ! #################################################################################### 
177    ! Constants used by RTTOV.
178    ! #################################################################################### 
179    integer,parameter :: &
180         RTTOV_MAX_CHANNELS = 20
181    character(len=256),parameter :: &
182         rttovDir = '/homedata/rguzman/CALIPSO/RTTOV/rttov_11.3/'
183    ! #################################################################################### 
184    ! Constants used by the PARASOL simulator.
185    ! #################################################################################### 
186    integer,parameter :: &
187         PARASOL_NREFL = 5,  & ! Number of angles in LUT
188         PARASOL_NTAU  = 7     ! Number of optical depths in LUT
189    real(wp),parameter,dimension(PARASOL_NREFL) :: &
190         PARASOL_SZA = (/0.0, 20.0, 40.0, 60.0, 80.0/)
191    REAL(WP),parameter,dimension(PARASOL_NTAU) :: &
192         PARASOL_TAU = (/0., 1., 5., 10., 20., 50., 100./)
193   
194    ! LUTs
195    REAL(WP),parameter,dimension(PARASOL_NREFL,PARASOL_NTAU) :: &
196         ! LUT for liquid particles
197         rlumA = reshape(source=(/ 0.03,     0.03,     0.03,     0.03,     0.03,         &
198                                   0.090886, 0.072185, 0.058410, 0.052498, 0.034730,     &
199                                   0.283965, 0.252596, 0.224707, 0.175844, 0.064488,     &
200                                   0.480587, 0.436401, 0.367451, 0.252916, 0.081667,     &
201                                   0.695235, 0.631352, 0.509180, 0.326551, 0.098215,     &
202                                   0.908229, 0.823924, 0.648152, 0.398581, 0.114411,     &
203                                   1.0,      0.909013, 0.709554, 0.430405, 0.121567/),   &
204                                   shape=(/PARASOL_NREFL,PARASOL_NTAU/)),                &
205         ! LUT for ice particles                                     
206         rlumB = reshape(source=(/ 0.03,     0.03,     0.03,     0.03,     0.03,         &
207                                   0.092170, 0.087082, 0.083325, 0.084935, 0.054157,     &
208                                   0.311941, 0.304293, 0.285193, 0.233450, 0.089911,     &
209                                   0.511298, 0.490879, 0.430266, 0.312280, 0.107854,     &
210                                   0.712079, 0.673565, 0.563747, 0.382376, 0.124127,     &
211                                   0.898243, 0.842026, 0.685773, 0.446371, 0.139004,     &
212                                   0.976646, 0.912966, 0.737154, 0.473317, 0.145269/),   &
213                                   shape=(/PARASOL_NREFL,PARASOL_NTAU/)) 
214
215    ! ####################################################################################
216    ! ISCCP simulator tau/CTP joint histogram information
217    ! ####################################################################################
218    integer,parameter :: &
219         numISCCPTauBins  = ntau, &              ! Number of optical depth bins
220         numISCCPPresBins = npres                ! Number of pressure bins     
221    real(wp),parameter,dimension(ntau+1) :: &
222         isccp_histTau = tau_binBounds           ! Joint-histogram boundaries (optical depth)
223    real(wp),parameter,dimension(npres+1) :: &
224         isccp_histPres = pres_binBounds         ! Joint-histogram boundaries (cloud pressure)
225    real(wp),parameter,dimension(ntau) :: &
226         isccp_histTauCenters = tau_binCenters   ! Joint histogram bin centers (optical depth)
227    real(wp),parameter,dimension(npres) :: &   
228         isccp_histPresCenters = pres_binCenters ! Joint histogram bin centers (cloud pressure)
229    real(wp),parameter,dimension(2,ntau) :: &
230         isccp_histTauEdges = tau_binEdges       ! Joint histogram bin edges (optical depth)
231    real(wp),parameter,dimension(2,npres) :: &   
232         isccp_histPresEdges = pres_binEdges     ! Joint histogram bin edges (cloud pressure)   
233   
234    ! ####################################################################################
235    ! MISR simulator tau/CTH joint histogram information
236    ! ####################################################################################
237    integer,parameter ::  &
238         numMISRHgtBins = nhgt, &             ! Number of cloud-top height bins
239         numMISRTauBins = ntau                ! Number of optical depth bins
240    ! Joint histogram boundaries
241    real(wp),parameter,dimension(numMISRHgtBins+1) :: &
242         misr_histHgt = hgt_binBounds         ! Joint-histogram boundaries (cloud height)
243    real(wp),parameter,dimension(numMISRTauBins+1) :: &
244         misr_histTau = tau_binBounds         ! Joint-histogram boundaries (optical-depth)
245    real(wp),parameter,dimension(numMISRHgtBins) :: &
246         misr_histHgtCenters = hgt_binCenters ! Joint-histogram bin centers (cloud height)
247    real(wp),parameter,dimension(2,numMISRHgtBins) :: &
248         misr_histHgtEdges = hgt_BinEdges     ! Joint-histogram bin edges (cloud height)
249 
250    ! ####################################################################################
251    ! MODIS simulator tau/CTP joint histogram information
252    ! ####################################################################################
253    integer,parameter :: &
254         numMODISPresBins = npres                    ! Number of pressure bins for joint-histogram   
255    real(wp),parameter,dimension(numMODISPresBins + 1) :: &
256         modis_histPres = 100*pres_binBounds         ! Joint-histogram boundaries (cloud pressure)
257    real(wp),parameter,dimension(2, numMODISPresBins) :: &
258         modis_histPresEdges = 100*pres_binEdges     ! Joint-histogram bin edges (cloud pressure)
259    real(wp),parameter,dimension(numMODISPresBins) :: &
260         modis_histPresCenters = 100*pres_binCenters ! Joint-histogram bin centers (cloud pressure)
261
262    ! For the MODIS simulator we want to preserve the ability for cospV1.4.0 to use the
263    ! old histogram bin boundaries for optical depth, so these are set up in initialization.
264    integer :: &
265         numMODISTauBins          ! Number of tau bins for joint-histogram
266    real(wp),allocatable,dimension(:) :: &
267         modis_histTau            ! Joint-histogram boundaries (optical depth)
268    real(wp),allocatable,dimension(:,:) :: &
269         modis_histTauEdges       ! Joint-histogram bin edges (optical depth)
270    real(wp),allocatable,dimension(:) :: &
271         modis_histTauCenters     ! Joint-histogram bin centers (optical depth)
272   
273    ! ####################################################################################
274    ! MODIS simulator tau/ReffICE and tau/ReffLIQ joint-histogram information
275    ! ####################################################################################
276    ! Ice
277    integer,parameter :: &
278         numMODISReffIceBins = nReffIce                ! Number of bins for joint-histogram
279    real(wp),parameter,dimension(nReffIce+1) :: &
280         modis_histReffIce = reffICE_binBounds         ! Effective radius bin boundaries
281    real(wp),parameter,dimension(nReffIce) :: &
282         modis_histReffIceCenters = reffICE_binCenters ! Effective radius bin centers
283    real(wp),parameter,dimension(2,nReffICE) :: &
284         modis_histReffIceEdges = reffICE_binEdges     ! Effective radius bin edges
285       
286    ! Liquid
287    integer,parameter :: &
288         numMODISReffLiqBins = nReffLiq                ! Number of bins for joint-histogram
289    real(wp),parameter,dimension(nReffLiq+1) :: &
290         modis_histReffLiq = reffLIQ_binBounds         ! Effective radius bin boundaries
291    real(wp),parameter,dimension(nReffLiq) :: &
292         modis_histReffLiqCenters = reffLIQ_binCenters ! Effective radius bin centers
293    real(wp),parameter,dimension(2,nReffLiq) :: &
294         modis_histReffLiqEdges = reffLIQ_binEdges     ! Effective radius bin edges
295    ! ####################################################################################
296    ! MODIS simulator LWP/ReffLIQ and IWP/ReffIce joint-histogram information
297    ! ####################################################################################
298    ! Liquid
299    integer,parameter :: &
300         numMODISLWPBins = nLWP                        ! Number of bins for joint-histogram
301    real(wp),parameter,dimension(nLWP+1) :: &
302         modis_histLWP = LWP_binBounds                 ! LWP bin boundaries
303    real(wp),parameter,dimension(nLWP) :: &
304         modis_histLWPCenters = LWP_binCenters         ! LWP bin centers
305    real(wp),parameter,dimension(2,nLWP) :: &
306         modis_histLWPEdges = LWP_binEdges             ! LWP bin edges
307
308    ! Ice
309    integer,parameter :: &
310         numMODISIWPBins = nIWP                        ! Number of bins for joint-histogram
311    real(wp),parameter,dimension(nIWP+1) :: &
312         modis_histIWP = IWP_binBounds                 ! IWP bin boundaries
313    real(wp),parameter,dimension(nIWP) :: &
314         modis_histIWPCenters = IWP_binCenters         ! IWP bin centers
315    real(wp),parameter,dimension(2,nIWP) :: &
316         modis_histIWPEdges = IWP_binEdges             ! IWP bin edges     
317
318    ! ####################################################################################
319    ! CLOUDSAT reflectivity histogram information
320    ! ####################################################################################
321    integer,parameter :: &
322       CLOUDSAT_DBZE_BINS     =   15, & ! Number of dBZe bins in histogram (cfad)
323       CLOUDSAT_DBZE_MIN      = -100, & ! Minimum value for radar reflectivity
324       CLOUDSAT_DBZE_MAX      =   80, & ! Maximum value for radar reflectivity
325       CLOUDSAT_CFAD_ZE_MIN   =  -50, & ! Lower value of the first CFAD Ze bin
326       CLOUDSAT_CFAD_ZE_WIDTH =    5    ! Bin width (dBZe)
327
328    real(wp),parameter,dimension(CLOUDSAT_DBZE_BINS+1) :: &
329         cloudsat_histRef = (/CLOUDSAT_DBZE_MIN,(/(i, i=int(CLOUDSAT_CFAD_ZE_MIN+CLOUDSAT_CFAD_ZE_WIDTH),&
330                             int(CLOUDSAT_CFAD_ZE_MIN+(CLOUDSAT_DBZE_BINS-1)*CLOUDSAT_CFAD_ZE_WIDTH),    &
331                             int(CLOUDSAT_CFAD_ZE_WIDTH))/),CLOUDSAT_DBZE_MAX/)
332    real(wp),parameter,dimension(2,CLOUDSAT_DBZE_BINS) :: &
333         cloudsat_binEdges = reshape(source=(/cloudsat_histRef(1),((cloudsat_histRef(k), &
334                                   l=1,2),k=2,CLOUDSAT_DBZE_BINS),cloudsat_histRef(CLOUDSAT_DBZE_BINS+1)/),&
335                                   shape = (/2,CLOUDSAT_DBZE_BINS/))     
336    real(wp),parameter,dimension(CLOUDSAT_DBZE_BINS) :: &
337         cloudsat_binCenters = (cloudsat_binEdges(1,:)+cloudsat_binEdges(2,:))/2._wp
338
339    ! Parameters for Cloudsat near-surface precipitation diagnostics.
340    ! Precipitation classes.
341    integer, parameter :: &
342         nCloudsatPrecipClass = 10
343    integer, parameter :: &
344         pClass_noPrecip      = 0, & ! No precipitation
345         pClass_Rain1         = 1, & ! Rain possible
346         pClass_Rain2         = 2, & ! Rain probable
347         pClass_Rain3         = 3, & ! Rain certain
348         pClass_Snow1         = 4, & ! Snow possible
349         pClass_Snow2         = 5, & ! Snow certain
350         pClass_Mixed1        = 6, & ! Mixed-precipitation possible
351         pClass_Mixed2        = 7, & ! Mixed-precipitation certain
352         pClass_Rain4         = 8, & ! Heavy rain
353         pClass_default       = 9    ! Default
354    ! Reflectivity bin boundaries, used by decision tree to classify precipitation type.
355    real(wp), dimension(4),parameter :: &
356         Zenonbinval =(/0._wp, -5._wp, -7.5_wp, -15._wp/)
357    real(wp), dimension(6),parameter :: &
358         Zbinvallnd = (/10._wp, 5._wp, 2.5_wp, -2.5_wp, -5._wp, -15._wp/)
359    ! Vertical level index(Nlvgrid) for Cloudsat precipitation occurence/frequency diagnostics.
360    ! Level 39 of Nlvgrid(40) is 480-960m.
361    integer, parameter :: &
362         cloudsat_preclvl = 39
363
364    ! ####################################################################################
365    ! CLOUDSAT and MODIS joint product information (2018.11.22)
366    ! ####################################################################################
367    ! @ COSP_DIAG_WARMRAIN:
368    integer, parameter :: CFODD_NCLASS  =    3 ! # of classes for CFODD (classified by MODIS Reff)
369    integer, parameter :: WR_NREGIME    =    3 ! # of warm-rain regimes (non-precip/drizzling/raining)
370    integer, parameter :: SGCLD_CLR     =    0 ! sub-grid cloud ID (fracout): clear-sky
371    integer, parameter :: SGCLD_ST      =    1 ! sub-grid cloud ID (fracout): stratiform
372    integer, parameter :: SGCLD_CUM     =    2 ! sub-grid cloud ID (fracout): cumulus
373    real(wp),parameter :: CWP_THRESHOLD = 0.00 ! cloud water path threshold
374    real(wp),parameter :: COT_THRESHOLD = 0.30 ! cloud optical thickness threshold
375    real(wp),parameter,dimension(CFODD_NCLASS+1) :: &
376         CFODD_BNDRE = (/5.0e-6, 12.0e-6, 18.0e-6, 35.0e-6/) ! Reff bnds
377    real(wp),parameter,dimension(2) :: &
378         CFODD_BNDZE = (/-15.0, 0.0/)                        ! dBZe bnds (cloud/drizzle/precip)
379    real(wp),parameter :: CFODD_DBZE_MIN    =  -30.0 ! Minimum value of CFODD dBZe bin
380    real(wp),parameter :: CFODD_DBZE_MAX    =   20.0 ! Maximum value of CFODD dBZe bin
381    real(wp),parameter :: CFODD_ICOD_MIN    =    0.0 ! Minimum value of CFODD ICOD bin
382    real(wp),parameter :: CFODD_ICOD_MAX    =   60.0 ! Maximum value of CFODD ICOD bin
383    real(wp),parameter :: CFODD_DBZE_WIDTH  =    2.0 ! Bin width (dBZe)
384    real(wp),parameter :: CFODD_ICOD_WIDTH  =    2.0 ! Bin width (ICOD)
385    integer,parameter :: &
386         CFODD_NDBZE = INT( (CFODD_DBZE_MAX-CFODD_DBZE_MIN)/CFODD_DBZE_WIDTH ) ! Number of CFODD dBZe bins
387    integer,parameter :: &
388         CFODD_NICOD = INT( (CFODD_ICOD_MAX-CFODD_ICOD_MIN)/CFODD_ICOD_WIDTH ) ! Number of CFODD ICOD bins
389    real(wp),parameter,dimension(CFODD_NDBZE+1) :: &
390         CFODD_HISTDBZE = (/int(CFODD_DBZE_MIN),(/(i, i=int(CFODD_DBZE_MIN+CFODD_DBZE_WIDTH), &
391                           int(CFODD_DBZE_MIN+(CFODD_NDBZE-1)*CFODD_DBZE_WIDTH),              &
392                           int(CFODD_DBZE_WIDTH))/),int(CFODD_DBZE_MAX)/)
393    real(wp),parameter,dimension(CFODD_NICOD+1) :: &
394         CFODD_HISTICOD = (/int(CFODD_ICOD_MIN),(/(i, i=int(CFODD_ICOD_MIN+CFODD_ICOD_WIDTH), &
395                           int(CFODD_ICOD_MIN+(CFODD_NICOD-1)*CFODD_ICOD_WIDTH),              &
396                           int(CFODD_ICOD_WIDTH))/),int(CFODD_ICOD_MAX)/)
397    real(wp),parameter,dimension(2,CFODD_NDBZE) :: &
398         CFODD_HISTDBZEedges = reshape(source=(/CFODD_HISTDBZE(1),((CFODD_HISTDBZE(k),    &
399                                 l=1,2),k=2,CFODD_NDBZE),CFODD_HISTDBZE(CFODD_NDBZE+1)/), &
400                                 shape = (/2,CFODD_NDBZE/))
401    real(wp),parameter,dimension(CFODD_NDBZE) :: &
402         CFODD_HISTDBZEcenters = (CFODD_HISTDBZEedges(1,:)+CFODD_HISTDBZEedges(2,:))/2._wp
403    real(wp),parameter,dimension(2,CFODD_NICOD) :: &
404         CFODD_HISTICODedges = reshape(source=(/CFODD_HISTICOD(1),((CFODD_HISTICOD(k),    &
405                                 l=1,2),k=2,CFODD_NICOD),CFODD_HISTICOD(CFODD_NICOD+1)/), &
406                                 shape = (/2,CFODD_NICOD/))
407    real(wp),parameter,dimension(CFODD_NICOD) :: &
408         CFODD_HISTICODcenters = (CFODD_HISTICODedges(1,:)+CFODD_HISTICODedges(2,:))/2._wp
409
410    ! ####################################################################################
411    ! Parameters used by the CALIPSO LIDAR simulator
412    ! ####################################################################################
413    ! CALISPO backscatter histogram bins
414    real(wp),parameter ::     &
415       S_cld       = 5.0,     & ! Threshold for cloud detection
416       S_att       = 0.01,    & !
417       S_cld_att   = 30.        ! Threshold for undefined cloud phase detection
418    real(wp),parameter,dimension(SR_BINS+1) :: &
419         calipso_histBsct = (/-1.,0.01,1.2,3.0,5.0,7.0,10.0,15.0,20.0,25.0,30.0,40.0,50.0,   &
420                              60.0,80.0,999./)         ! Backscatter histogram bins
421    real(wp),parameter,dimension(2,SR_BINS) :: &
422         calipso_binEdges = reshape(source=(/calipso_histBsct(1),((calipso_histBsct(k),  &
423                                    l=1,2),k=2,SR_BINS),calipso_histBsct(SR_BINS+1)/),   &
424                                    shape = (/2,SR_BINS/))     
425    real(wp),parameter,dimension(SR_BINS) :: &
426         calipso_binCenters = (calipso_binEdges(1,:)+calipso_binEdges(2,:))/2._wp 
427
428    integer,parameter  ::     &
429       LIDAR_NTEMP = 40, &
430       LIDAR_NCAT  = 4,  & ! Number of categories for cloudtop heights (high/mid/low/tot)
431       LIDAR_NTYPE = 3     ! Number of categories for OPAQ (opaque/thin cloud + z_opaque)
432    real(wp),parameter,dimension(LIDAR_NTEMP) :: &
433       LIDAR_PHASE_TEMP=                                                                 &
434       (/-91.5,-88.5,-85.5,-82.5,-79.5,-76.5,-73.5,-70.5,-67.5,-64.5,                    &
435         -61.5,-58.5,-55.5,-52.5,-49.5,-46.5,-43.5,-40.5,-37.5,-34.5,                    &
436         -31.5,-28.5,-25.5,-22.5,-19.5,-16.5,-13.5,-10.5, -7.5, -4.5,                    &
437          -1.5,  1.5,  4.5,  7.5, 10.5, 13.5, 16.5, 19.5, 22.5, 25.5/)
438    real(wp),parameter,dimension(2,LIDAR_NTEMP) :: &
439       LIDAR_PHASE_TEMP_BNDS=reshape(source=                                             &
440          (/-273.15, -90., -90., -87., -87., -84., -84., -81., -81., -78.,               &
441             -78.,   -75., -75., -72., -72., -69., -69., -66., -66., -63.,               &
442             -63.,   -60., -60., -57., -57., -54., -54., -51., -51., -48.,               &
443             -48.,   -45., -45., -42., -42., -39., -39., -36., -36., -33.,               &
444             -33.,   -30., -30., -27., -27., -24., -24., -21., -21., -18.,               &
445             -18.,   -15., -15., -12., -12.,  -9.,  -9.,  -6.,  -6.,  -3.,               &
446              -3.,     0.,   0.,   3.,   3.,   6.,   6.,   9.,   9.,  12.,               &
447              12.,    15.,  15.,  18.,  18.,  21.,  21.,  24.,  24., 100. /),            &
448              shape=(/2,40/))       
449
450    ! ####################################################################################
451    ! Parameters used by the GROUND LIDAR simulator
452    ! ####################################################################################
453    ! GROUND LIDAR backscatter histogram bins
454!    real(wp),parameter ::     &
455!       S_cld       = 5.0,     & ! Threshold for cloud detection
456!       S_att       = 0.01,    & !
457!       S_cld_att   = 30.        ! Threshold for undefined cloud phase detection
458    real(wp),parameter,dimension(SR_BINS+1) :: &
459         grLidar532_histBsct = (/-1.,0.01,1.2,3.0,5.0,7.0,10.0,15.0,20.0,25.0,30.0,40.0,50.0,  &
460                                 60.0,80.0,999./)         ! Backscatter histogram bins
461    real(wp),parameter,dimension(2,SR_BINS) :: &
462         grLidar532_binEdges = reshape(source=(/grLidar532_histBsct(1),((grLidar532_histBsct(k),  &
463                                    l=1,2),k=2,SR_BINS),grLidar532_histBsct(SR_BINS+1)/),   &
464                                    shape = (/2,SR_BINS/))     
465    real(wp),parameter,dimension(SR_BINS) :: &
466         grLidar532_binCenters = (grLidar532_binEdges(1,:)+grLidar532_binEdges(2,:))/2._wp 
467
468!    integer,parameter  ::     &
469!       LIDAR_NCAT  = 4       ! Number of categories for cloudtop heights (high/mid/low/tot)
470
471    ! ####################################################################################
472    ! Parameters used by the ATLID LIDAR simulator
473    ! ####################################################################################
474    ! ATLID LIDAR backscatter histogram bins
475    real(wp),parameter ::     &
476       S_cld_atlid       = 1.74,    & ! Threshold for cloud detection
477       S_att_atlid       = 0.01,    & !
478       S_cld_att_atlid   = 6.67        ! Threshold for undefined cloud phase detection
479    real(wp),parameter,dimension(SR_BINS+1) :: &
480         atlid_histBsct = (/-1.,0.01,1.03,1.38,1.74,2.07,2.62,3.65,4.63,5.63,6.67,8.8,11.25,  &
481                                 13.2,17.2,999./)         ! Backscatter histogram bins
482    real(wp),parameter,dimension(2,SR_BINS) :: &
483         atlid_binEdges = reshape(source=(/atlid_histBsct(1),((atlid_histBsct(k),  &
484                                    l=1,2),k=2,SR_BINS),atlid_histBsct(SR_BINS+1)/),   &
485                                    shape = (/2,SR_BINS/))     
486    real(wp),parameter,dimension(SR_BINS) :: &
487         atlid_binCenters = (atlid_binEdges(1,:)+atlid_binEdges(2,:))/2._wp 
488
489!    integer,parameter  ::     &
490!       LIDAR_NCAT  = 4       ! Number of categories for cloudtop heights (high/mid/low/tot)
491
492    ! ####################################################################################
493    ! New vertical grid used by CALIPSO and CLOUDSAT L3 (set up during initialization)
494    ! ####################################################################################
495    integer :: &
496         Nlvgrid      ! Number of levels in New grid
497    real(wp),save,dimension(:),allocatable :: &
498       vgrid_zl,  & ! New grid bottoms
499       vgrid_zu,  & ! New grid tops
500       vgrid_z,   & ! New grid center
501       dz           ! dZ
502!$OMP THREADPRIVATE(vgrid_zl,vgrid_zu,vgrid_z)
503
504END MODULE MOD_COSP_CONFIG
Note: See TracBrowser for help on using the repository browser.