Subroutine vom_check_water

1812 : 
1813 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1814 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1815 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1816 : !*----- check water balance --------------------------------------------
1817 : 
1818 :       subroutine vom_check_water ()
1819 :       use vom_vegwat_mod
1820 :       implicit none
1821 : 
1822 :       REAL*8             :: error1
1823 :       CHARACTER(len=135) :: msg
1824 : 
1825 :       ioacum = ioacum + io_h
1826 :       wsnew  = SUM(cH2Ol_s(:))
1827 :       error  = wsold + ioacum - wsnew
1828 : 
1829 : !     * gives an error message if accumulated error exceeds 1 mm
1830 : 
1831 :       if (abs(error) .gt. 1.d-3) then
1832 :         write(msg,*) 'Error in water balance [mm]:', error, 'io=',     &
1833 :      &    io__, 'wsold=', wsold, 'wsnew=', wsnew
1834 :         write(*,*) TRIM(msg)
1835 :         finish = 1
1836 :       elseif (q_md .gt. 0.d0) then
1837 :         error1 = mqtold + (sumruptkt_h - etmt_h) * 1.d6 - mqtnew
1838 :         if (abs(error1 / mqtnew) .gt. 1.d-6) then
1839 :           write(msg,*) 'Error in tree water balance [%]:',             &
1840 :      &      error1 * 100.d0, 'mqtold=', mqtold, 'mqtnew=', mqtnew,     &
1841 :      &      'hruptk=', sumruptkt_h, 'hetm=', etmt_h
1842 :           write(*,*) TRIM(msg)
1843 :           finish = 1
1844 :         endif
1845 :       endif
1846 : 
1847 :       return
1848 :       end subroutine vom_check_water