@@ -83,6 +83,33 @@ SUBROUTINE check_nml_consistency
83
83
END IF
84
84
ENDDO
85
85
86
+ !-----------------------------------------------------------------------
87
+ ! If sst_update = 0 , set io_form_auxinput4 to 0 so WRF will not try to
88
+ ! input the data ; auxinput_interval must also be 0
89
+ !-----------------------------------------------------------------------
90
+
91
+ IF ( model_config_rec%sst_update .EQ. 0 ) THEN
92
+ model_config_rec%io_form_auxinput4 = 0
93
+ DO i = 1 , model_config_rec % max_dom
94
+ WRITE (wrf_err_message, FMT= ' (A,A)' ) ' --- NOTE: sst_update is 0, ' , &
95
+ ' setting io_form_auxinput4 = 0 and auxinput4_interval = 0 for all domains'
96
+ CALL wrf_message ( wrf_err_message )
97
+ model_config_rec%auxinput4_interval(i) = 0
98
+ model_config_rec%auxinput4_interval_y(i) = 0
99
+ model_config_rec%auxinput4_interval_d(i) = 0
100
+ model_config_rec%auxinput4_interval_h(i) = 0
101
+ model_config_rec%auxinput4_interval_m(i) = 0
102
+ model_config_rec%auxinput4_interval_s(i) = 0
103
+ ENDDO
104
+ ELSE
105
+ IF ( model_config_rec%io_form_auxinput4 .EQ. 0 ) THEN
106
+ wrf_err_message = ' --- ERROR: If sst_update /= 0, io_form_auxinput4 must be /= 0'
107
+ CALL wrf_message ( wrf_err_message )
108
+ wrf_err_message = ' --- Set io_form_auxinput4 in the time_control namelist (probably to 2).'
109
+ CALL wrf_error_fatal ( TRIM ( wrf_err_message ) )
110
+ END IF
111
+ END IF
112
+
86
113
#if ((EM_CORE == 1) && (DA_CORE != 1))
87
114
!-----------------------------------------------------------------------
88
115
! Check that if grid_sfdda is one, grid_fdda is also 1
@@ -109,7 +136,7 @@ SUBROUTINE check_nml_consistency
109
136
DO i = 1 , model_config_rec % max_dom
110
137
111
138
IF ( model_config_rec%grid_fdda(i) .EQ. 0 ) THEN
112
- WRITE (wrf_err_message, FMT= ' (A,I6,A)' ) ' NOTE: grid_fdda is 0 for domain ' , &
139
+ WRITE (wrf_err_message, FMT= ' (A,I6,A)' ) ' --- NOTE: grid_fdda is 0 for domain ' , &
113
140
i, ' , setting gfdda interval and ending time to 0 for that domain.'
114
141
CALL wrf_message ( wrf_err_message )
115
142
@@ -129,7 +156,7 @@ SUBROUTINE check_nml_consistency
129
156
IF ( ( model_config_rec%grid_sfdda(i) .EQ. 0 ) .AND. &
130
157
( model_config_rec%pxlsm_soil_nudge(i) .EQ. 0 ) ) THEN
131
158
WRITE (wrf_err_message, FMT= ' (A,I6,A)' ) &
132
- ' NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain ' , &
159
+ ' --- NOTE: both grid_sfdda and pxlsm_soil_nudge are 0 for domain ' , &
133
160
i, ' , setting sgfdda interval and ending time to 0 for that domain.'
134
161
CALL wrf_message ( wrf_err_message )
135
162
@@ -147,7 +174,7 @@ SUBROUTINE check_nml_consistency
147
174
END IF
148
175
149
176
IF ( model_config_rec%obs_nudge_opt(i) .EQ. 0 ) THEN
150
- WRITE (wrf_err_message, FMT= ' (A,I6,A)' ) ' NOTE: obs_nudge_opt is 0 for domain ' , &
177
+ WRITE (wrf_err_message, FMT= ' (A,I6,A)' ) ' --- NOTE: obs_nudge_opt is 0 for domain ' , &
151
178
i, ' , setting obs nudging interval and ending time to 0 for that domain.'
152
179
CALL wrf_message ( wrf_err_message )
153
180
@@ -165,7 +192,35 @@ SUBROUTINE check_nml_consistency
165
192
model_config_rec%auxinput11_end_m(i) = 0
166
193
model_config_rec%auxinput11_end_s(i) = 0
167
194
END IF
168
- ENDDO
195
+
196
+ ENDDO ! Loop over domains
197
+
198
+ !-----------------------------------------------------------------------
199
+ ! If analysis FDDA is turned off, reset the io_forms to zero so that
200
+ ! there is no chance that WRF tries to input the data .
201
+ !-----------------------------------------------------------------------
202
+
203
+ IF ( MAXVAL ( model_config_rec%grid_fdda ) .EQ. 0 ) THEN
204
+ model_config_rec%io_form_gfdda = 0
205
+ ELSE
206
+ IF ( model_config_rec%io_form_gfdda .EQ. 0 ) THEN
207
+ wrf_err_message = ' --- ERROR: If grid_fdda /= 0, io_form_gfdda must be /= 0'
208
+ CALL wrf_message ( wrf_err_message )
209
+ wrf_err_message = ' --- Set io_form_gfdda in the time_control namelist (probably to 2).'
210
+ CALL wrf_error_fatal ( TRIM ( wrf_err_message ) )
211
+ END IF
212
+ END IF
213
+ IF ( MAXVAL ( model_config_rec%grid_sfdda ) .EQ. 0 ) THEN
214
+ model_config_rec%io_form_sgfdda = 0
215
+ ELSE
216
+ IF ( model_config_rec%io_form_sgfdda .EQ. 0 ) THEN
217
+ wrf_err_message = ' --- ERROR: If grid_sfdda /= 0, io_form_sgfdda must be /= 0'
218
+ CALL wrf_message ( wrf_err_message )
219
+ wrf_err_message = ' --- Set io_form_sgfdda in the time_control namelist (probably to 2).'
220
+ CALL wrf_error_fatal ( TRIM ( wrf_err_message ) )
221
+ END IF
222
+ END IF
223
+
169
224
#endif
170
225
171
226
END SUBROUTINE
@@ -197,7 +252,7 @@ SUBROUTINE set_physics_rconfigs
197
252
model_config_rec % cam_abs_dim1 = 4
198
253
model_config_rec % cam_abs_dim2 = model_config_rec % e_vert(1 )
199
254
200
- wrf_err_message = ' NOTE: CAM radiation is in use, setting: ' // &
255
+ wrf_err_message = ' --- NOTE: CAM radiation is in use, setting: ' // &
201
256
' paerlev=29, levsiz=59, cam_abs_dim1=4, cam_abs_dim2=e_vert'
202
257
CALL wrf_message ( wrf_err_message )
203
258
@@ -221,7 +276,7 @@ SUBROUTINE set_physics_rconfigs
221
276
IF ( model_config_rec % sf_surface_physics(1 ) .EQ. 88 ) &
222
277
model_config_rec % num_soil_layers = 4
223
278
224
- WRITE (wrf_err_message, FMT= ' (A,I6)' ) ' NOTE: num_soil_layers has been set to ' , &
279
+ WRITE (wrf_err_message, FMT= ' (A,I6)' ) ' --- NOTE: num_soil_layers has been set to ' , &
225
280
model_config_rec % num_soil_layers
226
281
CALL wrf_message ( wrf_err_message )
227
282
0 commit comments