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