Go to the documentation of this file.
33 end interface valcheck
62 integer,
intent(in) :: current_line
63 real(
rp),
intent(in) :: v
69 log_error(
"CHECK",*)
'uninitialized value at line:', current_line
93 integer ,
intent(in) :: KA, KS, KE
94 real(RP),
intent(in) :: var(KA)
95 real(RP),
intent(in) :: valmin
96 real(RP),
intent(in) :: valmax
97 character(len=*),
intent(in) :: varname
98 character(len=*),
intent(in) :: current_file
99 integer,
intent(in) :: current_line
101 logical,
intent(in),
optional :: mask(KA)
103 logical :: invalid_value
109 invalid_value = .false.
110 if (
present(mask) )
then
112 if ( .not. mask(k) ) cycle
113 if ( var(k)*0.0_rp /= 0.0_rp &
114 .OR. var(k) < valmin &
115 .OR. var(k) > valmax )
then
116 invalid_value = .true.
122 if ( var(k)*0.0_rp /= 0.0_rp &
123 .OR. var(k) < valmin &
124 .OR. var(k) > valmax )
then
125 invalid_value = .true.
131 if ( invalid_value )
then
132 log_error(
"VALCHECK_1D",*)
'invalid value): ', trim(varname), &
134 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
146 IA, IS, IE, JA, JS, JE, &
158 integer ,
intent(in) :: IA, IS, IE
159 integer ,
intent(in) :: JA, JS, JE
160 real(RP),
intent(in) :: var(IA,JA)
161 real(RP),
intent(in) :: valmin
162 real(RP),
intent(in) :: valmax
163 character(len=*),
intent(in) :: varname
164 character(len=*),
intent(in) :: current_file
165 integer,
intent(in) :: current_line
167 logical,
intent(in),
optional :: mask(IA,JA)
169 logical :: invalid_value
175 invalid_value = .false.
176 if (
present(mask) )
then
179 if ( .not. mask(i,j) ) cycle
180 if ( var(i,j)*0.0_rp /= 0.0_rp &
181 .OR. var(i,j) < valmin &
182 .OR. var(i,j) > valmax )
then
183 invalid_value = .true.
191 if ( var(i,j)*0.0_rp /= 0.0_rp &
192 .OR. var(i,j) < valmin &
193 .OR. var(i,j) > valmax )
then
194 invalid_value = .true.
201 if ( invalid_value )
then
202 log_error(
"VALCHECK_2D",*)
'invalid value:', trim(varname), &
203 '(', i,
',', j,
')=', var(i,j)
204 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
230 integer ,
intent(in) :: KA, KS, KE
231 integer ,
intent(in) :: IA, IS, IE
232 integer ,
intent(in) :: JA, JS, JE
233 real(RP),
intent(in) :: var(KA,IA,JA)
234 real(RP),
intent(in) :: valmin
235 real(RP),
intent(in) :: valmax
236 character(len=*),
intent(in) :: varname
237 character(len=*),
intent(in) :: current_file
238 integer,
intent(in) :: current_line
240 logical,
intent(in),
optional :: mask(IA,JA)
242 logical :: invalid_value
248 invalid_value = .false.
249 if (
present(mask) )
then
252 if ( .not. mask(i,j) ) cycle
254 if ( var(k,i,j)*0.0_rp /= 0.0_rp &
255 .OR. var(k,i,j) < valmin &
256 .OR. var(k,i,j) > valmax )
then
257 invalid_value = .true.
267 if ( var(k,i,j)*0.0_rp /= 0.0_rp &
268 .OR. var(k,i,j) < valmin &
269 .OR. var(k,i,j) > valmax )
then
270 invalid_value = .true.
278 if ( invalid_value )
then
279 log_error(
"VALCHECK_3D",*)
'Invalid value:', trim(varname), &
280 '(', k,
',', i,
',', j,
')=', var(k,i,j)
281 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
subroutine, public prc_abort
Abort Process.
subroutine, public prof_rapstart(rapname_base, level, disable_barrier)
Start raptime.
subroutine valcheck_1d(KA, KS, KE, var, valmin, valmax, varname, current_file, current_line, mask)
Nan & extreme value checker (1D)
integer, public prc_myrank
process num in local communicator
subroutine valcheck_2d(IA, IS, IE, JA, JS, JE, var, valmin, valmax, varname, current_file, current_line, mask)
Nan & extreme value checker (2D)
integer, parameter, public rp
subroutine, public check(current_line, v)
Undefined value checker.
subroutine valcheck_3d(KA, KS, KE, IA, IS, IE, JA, JS, JE, var, valmin, valmax, varname, current_file, current_line, mask)
Nan & extreme value checker (3D)
subroutine, public prof_rapend(rapname_base, level, disable_barrier)
Save raptime.
real(rp), public const_undef
integer, public debug_domain_num