Returns true if any unit tests for module MOM_diag_vkernels fail.
169 logical,
intent(in) :: verbose
171 real,
parameter :: mv=-9.999999999e9
176 write(0,*)
'==== MOM_diag_kernels: diag_vkernels_unit_tests =========='
177 if (v)
write(0,*)
'- - - - - - - - - - interpolation tests - - - - - - - - -'
179 fail = test_interp(v,mv,
'Identity: 3 layer', &
180 3, (/1.,2.,3./), (/1.,2.,3.,4./), &
181 3, (/1.,2.,3./), (/1.,2.,3.,4./) )
182 diag_vkernels_unit_tests = fail
184 fail = test_interp(v,mv,
'A: 3 layer to 2', &
185 3, (/1.,1.,1./), (/1.,2.,3.,4./), &
186 2, (/1.5,1.5/), (/1.,2.5,4./) )
187 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
189 fail = test_interp(v,mv,
'B: 2 layer to 3', &
190 2, (/1.5,1.5/), (/1.,4.,7./), &
191 3, (/1.,1.,1./), (/1.,3.,5.,7./) )
192 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
194 fail = test_interp(v,mv,
'C: 3 layer (vanished middle) to 2', &
195 3, (/1.,0.,2./), (/1.,2.,2.,3./), &
196 2, (/1.,2./), (/1.,2.,3./) )
197 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
199 fail = test_interp(v,mv,
'D: 3 layer (deep) to 3', &
200 3, (/1.,2.,3./), (/1.,2.,4.,7./), &
201 2, (/2.,2./), (/1.,3.,5./) )
202 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
204 fail = test_interp(v,mv,
'E: 3 layer to 3 (deep)', &
205 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
206 3, (/2.,3.,4./), (/1.,3.,6.,8./) )
207 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
209 fail = test_interp(v,mv,
'F: 3 layer to 4 with vanished top/botton', &
210 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
211 4, (/0.,2.,5.,0./), (/mv,1.,3.,8.,mv/) )
212 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
214 fail = test_interp(v,mv,
'Fs: 3 layer to 4 with vanished top/botton (shallow)', &
215 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
216 4, (/0.,2.,4.,0./), (/mv,1.,3.,7.,mv/) )
217 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
219 fail = test_interp(v,mv,
'Fd: 3 layer to 4 with vanished top/botton (deep)', &
220 3, (/1.,2.,4./), (/1.,2.,4.,8./), &
221 4, (/0.,2.,6.,0./), (/mv,1.,3.,8.,mv/) )
222 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
224 if (v)
write(0,*)
'- - - - - - - - - - reintegration tests - - - - - - - - -'
226 fail = test_reintegrate(v,mv,
'Identity: 3 layer', &
227 3, (/1.,2.,3./), (/-5.,2.,1./), &
228 3, (/1.,2.,3./), (/-5.,2.,1./) )
229 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
231 fail = test_reintegrate(v,mv,
'A: 3 layer to 2', &
232 3, (/2.,2.,2./), (/-5.,2.,1./), &
233 2, (/3.,3./), (/-4.,2./) )
234 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
236 fail = test_reintegrate(v,mv,
'A: 3 layer to 2 (deep)', &
237 3, (/2.,2.,2./), (/-5.,2.,1./), &
238 2, (/3.,4./), (/-4.,2./) )
239 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
241 fail = test_reintegrate(v,mv,
'A: 3 layer to 2 (shallow)', &
242 3, (/2.,2.,2./), (/-5.,2.,1./), &
243 2, (/3.,2./), (/-4.,1.5/) )
244 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
246 fail = test_reintegrate(v,mv,
'B: 3 layer to 4 with vanished top/bottom', &
247 3, (/2.,2.,2./), (/-5.,2.,1./), &
248 4, (/0.,3.,3.,0./), (/0.,-4.,2.,0./) )
249 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
251 fail = test_reintegrate(v,mv,
'C: 3 layer to 4 with vanished top//middle/bottom', &
252 3, (/2.,2.,2./), (/-5.,2.,1./), &
253 5, (/0.,3.,0.,3.,0./), (/0.,-4.,0.,2.,0./) )
254 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
256 fail = test_reintegrate(v,mv,
'D: 3 layer to 3 (vanished)', &
257 3, (/2.,2.,2./), (/-5.,2.,1./), &
258 3, (/0.,0.,0./), (/0.,0.,0./) )
259 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
261 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3', &
262 3, (/0.,0.,0./), (/-5.,2.,1./), &
263 3, (/2.,2.,2./), (/mv, mv, mv/) )
264 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
266 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3 (vanished)', &
267 3, (/0.,0.,0./), (/-5.,2.,1./), &
268 3, (/0.,0.,0./), (/mv, mv, mv/) )
269 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
271 fail = test_reintegrate(v,mv,
'D: 3 layer (vanished) to 3 (vanished)', &
272 3, (/0.,0.,0./), (/0.,0.,0./), &
273 3, (/0.,0.,0./), (/mv, mv, mv/) )
274 diag_vkernels_unit_tests = diag_vkernels_unit_tests .or. fail
276 if (.not. fail)
write(*,*)
'Pass'