5 & (npoin,wattemp,o2satu,demben,formk2,k1,k44,k22,
6 & photo,resp,tn,texp,timp,t2,t3,t4,hprop,un,vn,debug)
55 & ind_t,ind_o2,ind_ol,ind_nh4
64 INTEGER ,
INTENT(IN ) :: formk2,npoin,debug
65 DOUBLE PRECISION ,
INTENT(IN ) :: demben,wattemp
66 DOUBLE PRECISION ,
INTENT(IN ) :: photo,resp,k1,k44
67 DOUBLE PRECISION ,
INTENT(INOUT) :: o2satu,k22
68 TYPE(bief_obj) ,
INTENT(IN ) :: tn,hprop,un,vn
69 TYPE(bief_obj) ,
INTENT(INOUT) :: texp,timp,t2,t3,t4
75 DOUBLE PRECISION,
PARAMETER :: eps=1.d-3
76 DOUBLE PRECISION,
PARAMETER :: corr1=1.065d0
77 DOUBLE PRECISION,
PARAMETER :: corr2=1.0241d0
78 DOUBLE PRECISION :: bencorr,pmoinr,conv_k1,conv_k44
79 DOUBLE PRECISION :: power
94 IF( ind_t.GT.0 ) power=tn%ADR(ind_t)%P%R(i)-20.d0
97 t4%R(i)=bencorr*(corr1**power)
104 CALL os(
'X=C ',x=t2,c=o2satu )
113 CALL reaer(formk2,
k2,k22,npoin,1,un,vn,hprop,eps)
136 texp%ADR(ind_o2)%P%R(i) = texp%ADR(ind_o2)%P%R(i)
137 & + t3%R(i)*
k2%R(i) * max((t2%R(i)-tn%ADR(ind_o2)%P%R(i)),0.d0)
139 & - t4%R(i)/max(eps,hprop%R(i))
144 CALL os(
'X=X+C ',x=texp%ADR(ind_o2)%P,c=pmoinr)
148 CALL os(
'X=X+CY ',x=texp%ADR(ind_o2)%P,y=tn%ADR(ind_ol)%P,
150 CALL os(
'X=X+CY ',x=texp%ADR(ind_o2)%P,y=tn%ADR(ind_nh4)%P,
152 IF(debug.GT.0)
WRITE(
lu,*)
'IN O2, STEP1:',texp%ADR(ind_o2)%P%R(1)
162 CALL os(
'X=X+CY ',x=timp%ADR(ind_ol)%P,y=hprop,c=-conv_k1)
164 IF(debug.GT.0)
WRITE(
lu,*)
'IN O2, STEP2:',timp%ADR(ind_ol)%P%R(1)
169 CALL os(
'X=X+CY ',x=timp%ADR(ind_nh4)%P,y=hprop,c=-conv_k44)
171 IF(debug.GT.0)
WRITE(
lu,*)
'IN O2, STEP3:',timp%ADR(ind_nh4)%P%R(1)
double precision, parameter sectoday
type(bief_obj), target k2
subroutine reaer(FORMK2, K2, K22, NPOIN2, NPLAN, UN, VN, H, EPS)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
subroutine satur_o2(SATO2, FORMCS, WATTEMP, EPS)