blob: 189080ad9b40f869ad128b2dadf098380121d474 [file] [log] [blame]
subroutine verify(class, verified)
include 'header.h'
double precision norm, calc_norm, epsilon, norm_dif, norm_ref
external calc_norm
character class
logical verified
c.....tolerance level
epsilon = 1.0d-08
c.....compute the temperature integral over the whole domain
norm = calc_norm()
verified = .true.
if ( class .eq. 'S' ) then
norm_ref = 0.1890013110962D-02
elseif ( class .eq. 'W' ) then
norm_ref = 0.2569794837076D-04
elseif ( class .eq. 'A' ) then
norm_ref = 0.8939996281443D-04
elseif ( class .eq. 'B' ) then
norm_ref = 0.4507561922901D-04
elseif ( class .eq. 'C' ) then
norm_ref = 0.1544736587100D-04
elseif ( class .eq. 'D' ) then
norm_ref = 0.1577586272355D-05
else
class = 'U'
norm_ref = 1.d0
verified = .false.
endif
norm_dif = dabs((norm - norm_ref)/norm_ref)
c---------------------------------------------------------------------
c Output the comparison of computed results to known cases.
c---------------------------------------------------------------------
print *
if (class .ne. 'U') then
write(*, 1990) class
1990 format(' Verification being performed for class ', a)
write (*,2000) epsilon
2000 format(' accuracy setting for epsilon = ', E20.13)
else
write(*, 1995)
1995 format(' Unknown class')
endif
if (class .ne. 'U') then
write (*,2001)
else
write (*, 2005)
endif
2001 format(' Comparison of temperature integrals')
2005 format(' Temperature integral')
if (class .eq. 'U') then
write(*, 2015) norm
else if (norm_dif .le. epsilon) then
write (*,2011) norm, norm_ref, norm_dif
else
verified = .false.
write (*,2010) norm, norm_ref, norm_dif
endif
2010 format(' FAILURE: ', E20.13, E20.13, E20.13)
2011 format(' ', E20.13, E20.13, E20.13)
2015 format(' ', E20.13)
if (class .eq. 'U') then
write(*, 2022)
write(*, 2023)
2022 format(' No reference values provided')
2023 format(' No verification performed')
else if (verified) then
write(*, 2020)
2020 format(' Verification Successful')
else
write(*, 2021)
2021 format(' Verification failed')
endif
return
end