8 pws_o, psab, parg, pd2, pwp, &
42 USE yomhook
,ONLY : lhook, dr_hook
43 USE parkind1
,ONLY : jprb
47 INTEGER,
INTENT(IN) :: knbpt
48 REAL ,
INTENT(IN) :: pws_o(knbpt)
49 REAL ,
INTENT(IN) :: psab(knbpt)
50 REAL ,
INTENT(IN) :: parg(knbpt)
51 REAL ,
INTENT(IN) :: pd2(knbpt)
52 REAL ,
INTENT(IN) :: pwp(knbpt)
54 REAL ,
INTENT(OUT) :: pdwg_dwg(knbpt)
55 REAL ,
INTENT(OUT) :: pdwg_dw2(knbpt)
57 REAL :: zwsat, zwl, zdt, zw2, zc2, zc2ref, zp, za, zwgeq_dw2
59 REAL(KIND=JPRB) :: zhook_handle
61 IF (lhook) CALL dr_hook(
'OI_JACOBIANS',0,zhook_handle)
64 zdt =
REAL(nechgu)*3600.0*xrscal_jac
70 IF (pws_o(jrof) /= 999.0)
THEN
72 zp = 0.134 * parg(jrof) + 3.4
73 za = 732.42e-3 * parg(jrof)**(-0.539)
74 zc2ref = 13.815 * parg(jrof)**(-0.954)
75 zwsat = (-1.08*psab(jrof) + 494.305)*0.001
76 zw2 = pwp(jrof)/(pd2(jrof)*xrholw)
77 zc2 = zc2ref*zw2/(zwsat -zw2 + zwl)
78 zwgeq_dw2 = 1.0 - za*zp*(zw2/zwsat)**(zp-1.0) + &
79 9.0*za*zp*(zw2/zwsat)**(9.0*zp-1.0)
80 pdwg_dwg(jrof) = exp(-zc2/xday*zdt)
81 pdwg_dw2(jrof) = zwgeq_dw2 * (1.0 - exp(-zc2/xday*zdt))
91 IF (lhook) CALL dr_hook(
'OI_JACOBIANS',1,zhook_handle)
subroutine oi_jacobians(KNBPT,