64 USE yomhook
,ONLY : lhook, dr_hook
65 USE parkind1
,ONLY : jprb
75 TYPE(isba_t
),
INTENT(INOUT) :: i
77 REAL,
DIMENSION(:),
INTENT(IN) :: pua
78 REAL,
DIMENSION(:),
INTENT(IN) :: pva
89 REAL,
DIMENSION(SIZE(PUA,1)) :: zcrf
91 REAL,
DIMENSION(SIZE(PUA,1)) :: ztg_d
92 REAL,
DIMENSION(SIZE(PUA,1)) :: ztg_s
93 REAL,
DIMENSION(SIZE(PUA,1)) :: zwfps_s
94 REAL,
DIMENSION(SIZE(PUA,1)) :: zsand
95 REAL,
DIMENSION(SIZE(PUA,1)) :: zwind
96 REAL,
DIMENSION(SIZE(PUA,1)) :: zfwork
97 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_wind
98 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_ztg_d
99 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_ztg_s
100 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_zwfps_s
101 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_fert
102 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_ph
103 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_zsand
104 REAL,
DIMENSION(SIZE(PUA,1)) :: zn_y
106 REAL,
DIMENSION(SIZE(PUA,1),3) :: zs
108 CHARACTER(LEN=2) :: test_crf
111 REAL(KIND=JPRB) :: zhook_handle
113 IF (lhook) CALL dr_hook(
'SOILEMISNO_n',0,zhook_handle)
115 IF (.NOT.
ASSOCIATED(gb%XNOFLUX))
ALLOCATE(gb%XNOFLUX(
SIZE(pua,1)))
119 zwfps_s(:) = (i%XWG(:,1,1) / 0.45) * 100.
121 ztg_d(:) = i%XTG(:,2,1) - 273.15
122 ztg_s(:) = i%XTG(:,1,1) - 273.15
124 zsand(:) = i%XSAND(:,1) * 100.
126 zwind(:) = sqrt( pua(:)**2 + pva(:)**2 )
132 zn_ztg_s(:) = xcoef_tg_s(1) + xcoef_tg_s(2) * ztg_s(:)
133 zn_zwfps_s(:) = xcoef_wfps_s(1) + xcoef_wfps_s(2) * zwfps_s(:)
134 zn_ztg_d(:) = xcoef_tg_d(1) + xcoef_tg_d(2) * ztg_d(:)
135 zn_fert(:) = xcoef_fert(1) + xcoef_fert(2) * i%XFERT(:)
136 zn_zsand(:) = xcoef_sand(1) + xcoef_sand(2) * zsand(:)
137 zn_ph(:) = xcoef_ph(1) + xcoef_ph(2) * i%XPH(:)
138 zn_wind(:) = xcoef_wind(1) + xcoef_wind(2) * zwind(:)
143 zs(:,j) = xwgt_0(j) + xwgt_tg_s(j) * zn_ztg_s(:) &
144 + xwgt_wfps_s(j) * zn_zwfps_s(:) + xwgt_tg_d(j) * zn_ztg_d(:) &
145 + xwgt_fert(j) * zn_fert(:) + xwgt_sand(j) * zn_zsand(:) &
146 + xwgt_ph(j) * zn_ph(:) + xwgt_wind(j) * zn_wind(:)
151 zn_y(:) = xwgt_tot(1) + xwgt_tot(2)*tanh(zs(:,1)) + xwgt_tot(3)*tanh(zs(:,2)) + xwgt_tot(4)*tanh(zs(:,3))
156 WHERE (i%XPH(:) .GE. 6.0)
157 gb%XNOFLUX(:) = xcoef_no0 + xcoef_no1_s*zn_y(:)
159 gb%XNOFLUX(:) = xcoef_no0 + xcoef_no1_l*zn_y(:)
165 WHERE (gb%XNOFLUX(:).LT. 0.) gb%XNOFLUX(:)=0.
171 gb%XNOFLUX(:) = gb%XNOFLUX(:)*xavogadro/(1.0e4*8.64e4*14)
178 WHERE (i%XLAI(:,1) > 1.9 .AND. i%XLAI(:,1) < 5.)
180 ELSEWHERE (i%XLAI(:,1) > 5.)
186 gb%XNOFLUX(:) = gb%XNOFLUX(:)*zcrf(:)
200 IF (lhook) CALL dr_hook(
'SOILEMISNO_n',1,zhook_handle)
subroutine soilemisno_n(GB, I, PUA, PVA)