2 SUBROUTINE calcs2d_biomass
5 & (npoin,wattemp,tn,texp,rayeff,hprop,t1,t2,t3,t4,t5,t6,debug)
46 & cmoralg,trespir,prophoc,dtp,pronitc,k360,k320,pernits,
47 & wpor,wnor,sectoday,kpe,
48 & ind_t,ind_phy,ind_no3,ind_po4,ind_nor,ind_por
85 INTEGER ,
INTENT(IN ) :: npoin,debug
86 DOUBLE PRECISION ,
INTENT(IN ) :: wattemp
87 TYPE(bief_obj) ,
INTENT(IN ) :: tn,hprop
88 TYPE(bief_obj) ,
INTENT(INOUT) :: texp,rayeff,t1,t2,t3,t4,t5,t6
94 DOUBLE PRECISION,
PARAMETER :: eps=1.d-3
95 DOUBLE PRECISION,
PARAMETER :: unsurvingt=0.05d0
96 DOUBLE PRECISION :: g1
98 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 0' 105 CALL os(
'X=0 ',x=t3)
107 CALL os(
'X=0 ',x=t4)
109 CALL os(
'X=0 ',x=t5)
115 CALL os(
'X=CY ',x=t6,y=tn%ADR(ind_t)%P,c=unsurvingt)
117 CALL os(
'X=C ',x=t6,c=g1)
120 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 1' 125 & rayeff,hprop,t1,t2)
127 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 2' 131 CALL nuteff(t5%R,tn,npoin,ind_po4,ind_no3,
kp,
kn)
133 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 3' 137 CALL algae_growth(t3%R,
cmax,rayeff%R,t6,t5%R,
ctoxic(1),npoin)
139 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 4' 143 CALL algae_death(t4%R,t1%R,cmoralg,tn%ADR(ind_phy)%P%R,trespir,t6,
146 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 5' 154 CALL os(
'X=Y-Z ' ,x=t1 ,y=t3,z=t4)
157 CALL os(
'X=X+CYZ ' ,x=texp%ADR(ind_phy)%P,y=t1,
158 & z=tn%ADR(ind_phy)%P,c=sectoday)
160 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 6' 164 CALL os(
'X=CY ' ,x=t1,y=t4 ,c=dtp )
165 CALL os(
'X=X-Y ' ,x=t1,y=t3 )
166 CALL os(
'X=CXY ' ,x=t1,y=tn%ADR(ind_phy)%P ,c=prophoc )
167 CALL os(
'X=CYZ ' ,x=t2,y=tn%ADR(ind_por)%P,z=t6,c=k320 )
170 CALL os(
'X=X+Y ' ,x=t1,y=t2 )
171 CALL os(
'X=X+CY ' ,x=texp%ADR(ind_po4)%P,y=t1 ,c=sectoday )
173 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 7' 177 g1=prophoc*(1.d0-dtp)
178 CALL os(
'X=CYZ ' ,x=t1,y=t4,z=tn%ADR(ind_phy)%P,c=g1 )
179 CALL os(
'X=X-Y ' ,x=t1,y=t2 )
180 CALL ovd(
'X=CY/Z ' ,t2%R,tn%ADR(ind_por)%P%R,hprop%R,wpor,
181 & npoin ,2,0.d0,eps )
183 CALL os(
'X=X-Y ' ,x=t1,y=t2 )
184 CALL os(
'X=X+CY ' ,x=texp%ADR(ind_por)%P,y=t1 ,c=sectoday )
186 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 8' 190 CALL os(
'X=CY ' ,x=t1,y=t4 ,c=pernits)
191 CALL os(
'X=C(Y-Z)' ,x=t1,y=t1 ,z=t3,c=pronitc)
192 CALL os(
'X=XY ' ,x=t1,y=tn%ADR(ind_phy)%P )
193 CALL os(
'X=CYZ ' ,x=t2,y=tn%ADR(ind_nor)%P ,z=t6,c=k360 )
196 CALL os(
'X=X+Y ' ,x=t1,y=t2 )
197 CALL os(
'X=X+CY ' ,x=texp%ADR(ind_no3)%P,y=t1 ,c=sectoday )
199 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 9' 203 g1=pronitc*(1.d0-pernits)
204 CALL os(
'X=CYZ ' ,x=t1,y=t4,z=tn%ADR(ind_phy)%P,c=g1 )
205 CALL os(
'X=X-Y ' ,x=t1,y=t2 )
206 CALL ovd(
'X=CY/Z ' ,t2%R,tn%ADR(ind_nor)%P%R,hprop%R,wnor,
207 & npoin ,2,0.d0,eps )
210 CALL os(
'X=X-Y ' ,x=t1,y=t2 )
211 CALL os(
'X=X+CY ' ,x=texp%ADR(ind_nor)%P,y=t1 ,c=sectoday )
213 IF(debug.GT.0)
WRITE(
lu,*)
'IN BIOMASS, STEP 10'
double precision, dimension(2) ctoxic
subroutine ray_effect(SECCHI, TRR, NPOIN, MEXT, I0, IK, KPE, EFF, H, T1, T2)
subroutine nuteff(LNUT, TRR, NPOIN, IPO4, INO3, KP, KN)
subroutine ovd(OP, X, Y, Z, C, NPOIN, IOPT, D, EPS)
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)