da_verif_obs_control.f90

References to this file elsewhere.
1 MODULE da_verif_obs_control
2 !----------------------------------------------------------------------------   
3 ! History:
4 !
5 !  Abstract:  
6 !   Main module for 
7 !   defining and initializing various data type, 
8 !   defining unit numbers and cosnstants
9 !
10 !  Author:   Syed RH Rizvi     NCAR/MMM         05/25/2006
11 ! Updates:
12 !            Syed RH Rizvi     NCAR/MMM         05/08/2007
13 !            Significance test & error bars are added
14 !----------------------------------------------------------------------------   
15    implicit none
16 
17   integer, parameter       :: maxnum = 10, nstd = 16, nstdh = 125
18   integer, parameter       :: num_verif_var =5        
19   real,    dimension(nstd) :: stdp
20   real,    dimension(nstdh):: stdh
21   real                     :: rmiss = -99.99
22   integer                  :: num_miss = -99
23   real, parameter          :: missing_r = -888888.
24 
25   data stdp/1000.0, 925.0, 850.0, 700.0, 500.0, 400.0, 300.0, &
26              250.0, 200.0, 150.0, 100.0,  70.0,  50.0 ,30.0, 20.0 ,10.0/ 
27   data stdh/0.2, 0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6, 1.8, 2.0, &
28             2.2, 2.4, 2.6, 2.8, 3.0, 3.2, 3.4, 3.6, 3.8, 4.0, &
29             4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8, 6.0, &
30             6.2, 6.4, 6.6, 6.8, 7.0, 7.2, 7.4, 7.6, 7.8, 8.0, &
31             8.2, 8.4, 8.6, 8.8, 9.0, 9.2, 9.4, 9.6, 9.8,10.0, &
32            10.2,10.4,10.6,10.8,11.0,11.2,11.4,11.6,11.8,12.0, &
33            12.2,12.4,12.6,12.8,13.0,13.2,13.4,13.6,13.8,14.0, &
34            14.2,14.4,14.6,14.8,15.0,15.2,15.4,15.6,15.8,16.0, &
35            16.2,16.4,16.6,16.8,17.0,17.2,17.4,17.6,17.8,18.0, &
36            18.2,18.4,18.6,18.8,19.0,19.2,19.4,19.6,19.8,20.0, &
37            20.2,20.4,20.6,20.8,21.0,21.2,21.4,21.6,21.8,22.0, &
38            22.2,22.4,22.6,22.8,23.0,23.2,23.4,23.6,23.8,24.0, &
39            24.2,24.4,24.6,24.8,25.0/
40 
41 
42   character (len=1)   :: verif_var(num_verif_var)
43   character (len= 2)  :: verif_type(2)
44   data verif_var/'U','V','T','Q','P'/
45   data verif_type/'OI','AO'/
46 
47   type stats_value
48     integer     :: num
49     real        :: abias
50     real        :: bias
51     real        :: rmse
52   end type stats_value
53 
54   type surface_type
55     type (stats_value) :: uomb, uoma
56     type (stats_value) :: vomb, voma
57     type (stats_value) :: tomb, toma
58     type (stats_value) :: pomb, poma
59     type (stats_value) :: qomb, qoma
60   end type surface_type
61 
62   type upr_type
63     type (stats_value) :: uomb(nstd), uoma(nstd)
64     type (stats_value) :: vomb(nstd), voma(nstd)
65     type (stats_value) :: tomb(nstd), toma(nstd)
66     type (stats_value) :: qomb(nstd), qoma(nstd)
67   end type upr_type
68 
69   type gpspw_type
70     type (stats_value)          :: tpwomb, tpwoma         
71   end type gpspw_type
72 
73   type gpsref_type
74     type (stats_value)          :: refomb(nstdh), refoma(nstdh)         
75   end type gpsref_type
76 
77 ! namelist.varstats variables
78 
79 ! record1
80   INTEGER                               :: exp_num   ! number of experiments
81   CHARACTER(LEN=512),DIMENSION(maxnum)  :: exp_dirs, out_dirs   
82 ! record2
83   CHARACTER(LEN=10)      :: start_date
84   CHARACTER(LEN=10)      :: end_date
85   INTEGER                :: interval       ! interval(h) between initial times
86 !                                          ! Typically 6 or 12 hours
87 
88 ! record3
89 
90   LOGICAL  :: if_plot_rmse
91   LOGICAL  :: if_plot_bias
92   LOGICAL  :: if_plot_abias
93 
94 ! record4
95   LOGICAL  :: if_plot_surface
96 
97   LOGICAL  :: if_plot_synop  
98   LOGICAL  :: if_plot_metar  
99   LOGICAL  :: if_plot_ships  
100   LOGICAL  :: if_plot_buoy   
101   LOGICAL  :: if_plot_sonde_sfc
102   LOGICAL  :: if_plot_qscat
103 
104   LOGICAL  :: if_plot_upr   
105 !
106   LOGICAL  :: if_plot_sound
107   LOGICAL  :: if_plot_airep
108   LOGICAL  :: if_plot_pilot 
109   LOGICAL  :: if_plot_profiler
110   LOGICAL  :: if_plot_polaramv 
111   LOGICAL  :: if_plot_geoamv   
112 
113   LOGICAL  :: if_plot_gpspw 
114   LOGICAL  :: if_plot_gpsref
115   LOGICAL  :: if_plot_airsret 
116 ! record5
117   character (len=50)    :: file_path_string
118 
119   NAMELIST /Record1/ exp_num, exp_dirs, out_dirs
120   NAMELIST /Record2/ start_date, end_date, interval
121   NAMELIST /Record3/ if_plot_rmse, if_plot_bias, if_plot_abias
122   NAMELIST /Record4/ if_plot_synop, if_plot_sonde_sfc,if_plot_metar, &
123                      if_plot_ships, if_plot_buoy , if_plot_qscat, &
124                      if_plot_sound, if_plot_airep, if_plot_pilot, if_plot_profiler, &
125                      if_plot_geoamv, if_plot_polaramv, if_plot_gpspw, if_plot_gpsref, &
126                      if_plot_airsret
127   NAMELIST /Record5/ file_path_string
128 !
129 ! Namelist declaration over
130   integer      :: nml_unit, diag_unit_in, diag_unit_out, info_unit, plot_stats_unit
131   real, dimension(34,2) :: alpha
132 end MODULE da_verif_obs_control