emcsfc_snow2mdl 1.14.0
Loading...
Searching...
No Matches
program_setup.F90
Go to the documentation of this file.
1
5
16
17 implicit none
18
19 private
20
21 character*200, public :: afwa_snow_global_file
22 character*200, public :: afwa_snow_nh_file
23 character*200, public :: afwa_snow_sh_file
24 character*200, public :: afwa_lsmask_nh_file
25 character*200, public :: afwa_lsmask_sh_file
26 character*200, public :: autosnow_file
27 character*200, public :: climo_qc_file
29 character*200, public :: gfs_lpl_file
32 character*200, public :: model_lat_file
33 character*200, public :: model_lon_file
34 character*200, public :: model_lsmask_file
35 character*200, public :: model_snow_file
36 character*200, public :: nesdis_lsmask_file
37 character*200, public :: nesdis_snow_file
38
39 integer, public :: grib_century
40
41 integer, public :: grib_day
42 integer, public :: grib_hour
43 integer, public :: grib_month
44 integer, public :: grib_year
45
46 logical, public :: output_grib2
47
48 real, public :: lat_threshold
52 real, public :: min_snow_depth
53 real, public :: snow_cvr_threshold
55
56 public :: read_config_nml
57
58 contains
59
80 subroutine read_config_nml
81
82 implicit none
83
84 integer, parameter :: iunit=41
85 integer :: istat
86
87 namelist /source_data/ autosnow_file, &
95
96 namelist /qc/ climo_qc_file
97
98 namelist /model_specs/ model_lat_file, &
102
103 namelist /output_data/ model_snow_file, &
105
106 namelist /output_grib_time/ grib_year, &
107 grib_month, &
108 grib_day, &
110
111 namelist /parameters/ lat_threshold, &
114
115 print*,''
116 print*,"- READ CONFIGURATION NAMELIST"
117
118 open(iunit, iostat=istat)
119
120 if (istat /= 0) then
121 print*,''
122 print*,'- FATAL ERROR: BAD OPEN ON CONFIG NAMELIST. ISTAT IS ', istat
123 close(iunit)
124 call w3tage('SNOW2MDL')
125 call errexit(77)
126 end if
127
128 read(iunit, nml=source_data, iostat=istat, err=900)
129
130 read(iunit, nml=qc, iostat=istat, err=900)
131
132 read(iunit, nml=model_specs, iostat=istat, err=900)
133
134 read(iunit, nml=output_data, iostat=istat, err=900)
135
136 read(iunit, nml=output_grib_time, iostat=istat, err=900)
137
138 read(iunit, nml=parameters, iostat=istat, err=900)
139
140 close(iunit)
141
142!-----------------------------------------------------------------------
143! the user determines the date/time stamp for the final interpolated
144! model data.
145!-----------------------------------------------------------------------
146
147 grib_century = grib_year / 100
148
149 grib_year = mod(grib_year,100)
150
151 if (grib_year == 0) then
152 grib_year = 100
153 else
155 end if
156
157 return
158
159 900 continue
160 print*,''
161 print*,'- FATAL ERROR: BAD READ ON CONFIG NAMELIST. ISTAT IS ', istat
162 close(iunit)
163 call w3tage('SNOW2MDL')
164 call errexit(78)
165
166 end subroutine read_config_nml
167
168 end module program_setup
This module reads in data from the program's configuration namelist.
character *200, public afwa_lsmask_sh_file
path/name afwa s hemis land/sea mask
integer, public grib_day
date of the final merged snow product that will be placed in grib header.
character *200, public gfs_lpl_file
GFS gaussian thinned (reduced) grid definition file.
real, public lat_threshold
equatorward of this latitude, model points with undefined cover or depth (because the interpolation r...
character *200, public model_snow_file
path/name nesdis/ims snow cover
subroutine, public read_config_nml
Read namelist control.
character *200, public afwa_lsmask_nh_file
path/name afwa n hemis land/sea mask
character *200, public nesdis_snow_file
nesdis/ims snow file
character *200, public climo_qc_file
Climatological snow cover file.
character *200, public afwa_snow_nh_file
path/name afwa n hemis snow depth
character *200, public afwa_snow_global_file
global afwa snow file.
integer, public grib_year
date of the final merged snow product that will be placed in grib header.
real, public min_snow_depth
minimum snow depth in meters at model points with coverage exceeding threshold.
character *200, public model_lat_file
path/name lats on the model grid
character *200, public model_lon_file
path/name lons on the model grid
real, public snow_cvr_threshold
if percent coverage according to nesdis/ims or autosnow exceeds this value, then non-zero snow depth ...
character *200, public nesdis_lsmask_file
nesdis/ims land mask file
character *200, public model_lsmask_file
path/name nesdis/ims land mask
character *200, public autosnow_file
path/name s hemis autosnow file
logical, public output_grib2
when true, output model snow analysis is grib 2.
integer, public grib_month
date of the final merged snow product that will be placed in grib header.
integer, public grib_century
date of the final merged snow product that will be placed in grib header.
integer, public grib_hour
date of the final merged snow product that will be placed in grib header.
character *200, public afwa_snow_sh_file
path/name afwa s hemis snow depth