Subroutine vom_tissue_water_et
1619 :
1620 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1621 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1622 : !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1623 : !*-----transpiration, gstom and tissue water ---------------------------
1624 :
1625 : subroutine vom_tissue_water_et (netass)
1626 : use vom_vegwat_mod
1627 : implicit none
1628 :
1629 : REAL*8, INTENT(inout) :: netass
1630 : CHARACTER(len=135) :: msg
1631 :
1632 : ! * makes sure that tissue water does not get below 0.9mqx
1633 : if (mqt_ .le. 0.9d0 * q_mqx) then
1634 : if (wlayer_ .ge. 1) then
1635 : if (etmt__ .gt. 0.9d0 * SUM(ruptkt__(:))) then
1636 : if (SUM(ruptkt__(:)) .ge. 0.d0) then
1637 : etmt__ = SUM(ruptkt__(:))
1638 : transpt = etmt__ * 55555.555555555555d0 ! (Out[249]) mol/s=m/s*10^6 g/m/(18g/mol)
1639 : gstomt = transpt / (p_a * vd_h(th_))
1640 : else
1641 : write(msg,'(A20,I2,A1,I2,A1,I4)') 'vegetation dies on: ', &
1642 : & fday(nday), '/', fmonth(nday), '/', fyear(nday)
1643 : write(*,*) TRIM(msg)
1644 : netass = 0.d0
1645 : ! * if tissues water depleted, but still loosing water -> death
1646 : finish = 1
1647 : return
1648 : endif
1649 : call vom_mqss(mqsst_)
1650 : mqsstmin = MIN(mqsstmin, mqsst_)
1651 : endif
1652 : else
1653 : etmt__ = 0.d0
1654 : transpt = 0.d0
1655 : gstomt = 0.d0
1656 : endif
1657 : endif
1658 : if (wlayer_ .ge. 0) then
1659 : ! * (3.35), 1.e6 to convert from m (=1000kg/m2) to g/m2; (Out[250])
1660 : dmqt = (SUM(ruptkt__(:)) - etmt__) * 1.d6
1661 : else
1662 : dmqt = -etmt__ * 1.d6
1663 : endif
1664 :
1665 : return
1666 : end subroutine vom_tissue_water_et