Returns true if any unit tests for module MOM_diag_vkernels fail.
171 logical,
intent(in) :: verbose
173 real,
parameter :: mv=-9.999999999e9
178 write(stdout,*)
'==== MOM_diag_kernels: diag_vkernels_unit_tests =========='
179 if (v)
write(stdout,*)
'- - - - - - - - - - interpolation tests - - - - - - - - -'
181 fail = test_interp(v,mv,
'Identity: 3 layer', &
182 3, (/1.,2.,3./), (/1.,2.,3.,4./), &
183 3, (/1.,2.,3./), (/1.,2.,3.,4./) )
184 diag_vkernels_unit_tests = fail
186 fail = test_interp(v,mv,
'A: 3 layer to 2', &
187 3, (/1.,1.,1./), (/1.,2.,3.,4./), &
188 2, (/1.5,1.5/), (/1.,2.5,4./) )
189 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
191 fail = test_interp(v,mv,
'B: 2 layer to 3', &
192 2, (/1.5,1.5/), (/1.,4.,7./), &
193 3, (/1.,1.,1./), (/1.,3.,5.,7./) )
194 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
196 fail = test_interp(v,mv,
'C: 3 layer (vanished middle) to 2', &
197 3, (/1.,0.,2./), (/1.,2.,2.,3./), &
198 2, (/1.,2./), (/1.,2.,3./) )
199 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
201 fail = test_interp(v,mv,
'D: 3 layer (deep) to 3', &
202 3, (/1.,2.,3./), (/1.,2.,4.,7./), &
203 2, (/2.,2./), (/1.,3.,5./) )
204 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
206 fail = test_interp(v,mv,
'E: 3 layer to 3 (deep)', &
207 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
208 3, (/2.,3.,4./), (/1.,3.,6.,8./) )
209 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
211 fail = test_interp(v,mv,
'F: 3 layer to 4 with vanished top/botton', &
212 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
213 4, (/0.,2.,5.,0./), (/mv,1.,3.,8.,mv/) )
214 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
216 fail = test_interp(v,mv,
'Fs: 3 layer to 4 with vanished top/botton (shallow)', &
217 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
218 4, (/0.,2.,4.,0./), (/mv,1.,3.,7.,mv/) )
219 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
221 fail = test_interp(v,mv,
'Fd: 3 layer to 4 with vanished top/botton (deep)', &
222 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
223 4, (/0.,2.,6.,0./), (/mv,1.,3.,8.,mv/) )
224 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
226 if (v)
write(stdout,*)
'- - - - - - - - - - reintegration tests - - - - - - - - -'
228 fail = test_reintegrate(v,mv,
'Identity: 3 layer', &
229 3, (/1.,2.,3./), (/-5.,2.,1./), &
230 3, (/1.,2.,3./), (/-5.,2.,1./) )
231 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
233 fail = test_reintegrate(v,mv,
'A: 3 layer to 2', &
234 3, (/2.,2.,2./), (/-5.,2.,1./), &
235 2, (/3.,3./), (/-4.,2./) )
236 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
238 fail = test_reintegrate(v,mv,
'A: 3 layer to 2 (deep)', &
239 3, (/2.,2.,2./), (/-5.,2.,1./), &
240 2, (/3.,4./), (/-4.,2./) )
241 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
243 fail = test_reintegrate(v,mv,
'A: 3 layer to 2 (shallow)', &
244 3, (/2.,2.,2./), (/-5.,2.,1./), &
245 2, (/3.,2./), (/-4.,1.5/) )
246 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
248 fail = test_reintegrate(v,mv,
'B: 3 layer to 4 with vanished top/bottom', &
249 3, (/2.,2.,2./), (/-5.,2.,1./), &
250 4, (/0.,3.,3.,0./), (/0.,-4.,2.,0./) )
251 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
253 fail = test_reintegrate(v,mv,
'C: 3 layer to 4 with vanished top//middle/bottom', &
254 3, (/2.,2.,2./), (/-5.,2.,1./), &
255 5, (/0.,3.,0.,3.,0./), (/0.,-4.,0.,2.,0./) )
256 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
258 fail = test_reintegrate(v,mv,
'D: 3 layer to 3 (vanished)', &
259 3, (/2.,2.,2./), (/-5.,2.,1./), &
260 3, (/0.,0.,0./), (/0.,0.,0./) )
261 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
263 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3', &
264 3, (/0.,0.,0./), (/-5.,2.,1./), &
265 3, (/2.,2.,2./), (/mv, mv, mv/) )
266 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
268 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3 (vanished)', &
269 3, (/0.,0.,0./), (/-5.,2.,1./), &
270 3, (/0.,0.,0./), (/mv, mv, mv/) )
271 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
273 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3 (vanished)', &
274 3, (/0.,0.,0./), (/0.,0.,0./), &
275 3, (/0.,0.,0./), (/mv, mv, mv/) )
276 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
278 if (.not. fail)
write(stdout,*)
'Pass'