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
92 real(RP),
intent(in) :: var(:)
93 real(RP),
intent(in) :: valmin
94 real(RP),
intent(in) :: valmax
95 character(len=*),
intent(in) :: varname
96 character(len=*),
intent(in) :: current_file
97 integer,
intent(in) :: current_line
99 logical :: invalid_value
100 integer :: k, kstr, kend
105 kstr = lbound( var(:), 1 )
106 kend = ubound( var(:), 1 )
108 invalid_value = .false.
110 if ( var(k)*0.0_rp /= 0.0_rp &
111 .OR. var(k) < valmin &
112 .OR. var(k) > valmax )
then 113 invalid_value = .true.
118 if ( invalid_value )
then 119 log_error(
"VALCHECK_1D",*)
'invalid value:', trim(varname), &
121 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
145 real(RP),
intent(in) :: var(:,:)
146 real(RP),
intent(in) :: valmin
147 real(RP),
intent(in) :: valmax
148 character(len=*),
intent(in) :: varname
149 character(len=*),
intent(in) :: current_file
150 integer,
intent(in) :: current_line
152 logical :: invalid_value
153 integer :: k, kstr, kend
154 integer :: i, istr, iend
159 kstr = lbound( var(:,:), 1 )
160 kend = ubound( var(:,:), 1 )
162 istr = lbound( var(:,:), 2 )
163 iend = ubound( var(:,:), 2 )
165 invalid_value = .false.
166 outer:
do i = istr, iend
168 if ( var(k,i)*0.0_rp /= 0.0_rp &
169 .OR. var(k,i) < valmin &
170 .OR. var(k,i) > valmax )
then 171 invalid_value = .true.
177 if ( invalid_value )
then 178 log_error(
"VALCHECK_2D",*)
'invalid value:', trim(varname), &
179 '(',
prc_myrank,
',', k,
',', i,
')=', var(k,i)
180 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
204 real(RP),
intent(in) :: var(:,:,:)
205 real(RP),
intent(in) :: valmin
206 real(RP),
intent(in) :: valmax
207 character(len=*),
intent(in) :: varname
208 character(len=*),
intent(in) :: current_file
209 integer,
intent(in) :: current_line
211 logical :: invalid_value
212 integer :: k, kstr, kend
213 integer :: i, istr, iend
214 integer :: j, jstr, jend
219 kstr = lbound( var(:,:,:), 1 )
220 kend = ubound( var(:,:,:), 1 )
222 istr = lbound( var(:,:,:), 2 )
223 iend = ubound( var(:,:,:), 2 )
225 jstr = lbound( var(:,:,:), 3 )
226 jend = ubound( var(:,:,:), 3 )
228 invalid_value = .false.
229 outer:
do j = jstr, jend
232 if ( var(k,i,j)*0.0_rp /= 0.0_rp &
233 .OR. var(k,i,j) < valmin &
234 .OR. var(k,i,j) > valmax )
then 235 invalid_value = .true.
242 if ( invalid_value )
then 243 log_error(
"VALCHECK_3D",*)
'Invalid value:', trim(varname), &
244 '(',
prc_myrank,
',', k,
',', i,
',', j,
')=', var(k,i,j)
245 log_error_cont(*)
'in file : ', trim(current_file),
', at line : ', current_line
subroutine valcheck_1d(var, valmin, valmax, varname, current_file, current_line)
Nan & extreme value checker (1D)
subroutine valcheck_2d(var, valmin, valmax, varname, current_file, current_line)
Nan & extreme value checker (2D)
subroutine, public check(current_line, v)
Undefined value checker.
real(rp), public const_undef
subroutine valcheck_3d(var, valmin, valmax, varname, current_file, current_line)
Nan & extreme value checker (3D)
integer, public prc_myrank
process num in local communicator
subroutine, public prc_abort
Abort Process.
subroutine, public prof_rapstart(rapname_base, level)
Start raptime.
integer, public debug_domain_num
subroutine, public prof_rapend(rapname_base, level)
Save raptime.