55 |
INTEGER I,J,k |
INTEGER I,J,k |
56 |
_RL sfac(1-OLy:sNy+OLy) |
_RL sfac(1-OLy:sNy+OLy) |
57 |
_RL lit, atten |
_RL lit, atten |
58 |
|
_RL nutlimit |
59 |
|
#ifdef AD_SAFE |
60 |
|
_RL thx, thy, theps |
61 |
|
#endif |
62 |
CEOP |
CEOP |
63 |
|
|
64 |
|
|
65 |
#ifndef READ_PAR |
#ifndef READ_PAR |
66 |
call insol(myTime,sfac,bj) |
call insol(myTime,sfac,bj) |
67 |
#endif |
#endif |
87 |
if (lit.lt.0.d0.or.lit.gt.150) then |
if (lit.lt.0.d0.or.lit.gt.150) then |
88 |
print*,'QQ lit', lit |
print*,'QQ lit', lit |
89 |
endif |
endif |
90 |
bioac(i,j,k)=alpha(i,j,bi,bj)* |
|
|
& lit/(lit+lit0)*maskC(i,j,k,bi,bj)* |
|
91 |
#ifdef ALLOW_FE |
#ifdef ALLOW_FE |
92 |
& min(PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4), |
#ifdef AD_SAFE |
93 |
& PTR_FE(i,j,k)/(PTR_FE(i,j,k)+KFE) ) |
thx = PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4) |
94 |
|
thy = PTR_FE(i,j,k)/(PTR_FE(i,j,k)+KFE) |
95 |
|
theps = 1.d-6 |
96 |
|
nutlimit= ( 1.d0 - tanh((thx-thy)/theps) ) * thx/2 + |
97 |
|
& ( 1.d0 + tanh((thx-thy)/theps) ) * thy/2 |
98 |
#else |
#else |
99 |
& PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4) |
nutlimit= min(PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4), |
100 |
|
& PTR_FE(i,j,k)/(PTR_FE(i,j,k)+KFE) ) |
101 |
#endif |
#endif |
102 |
|
#else |
103 |
|
nutlimit= PTR_PO4(i,j,k)/(PTR_PO4(i,j,k)+KPO4) |
104 |
|
#endif |
105 |
|
|
106 |
|
bioac(i,j,k)=alpha(i,j,bi,bj)* |
107 |
|
& lit/(lit+lit0)*maskC(i,j,k,bi,bj)* |
108 |
|
& nutlimit |
109 |
ENDDO |
ENDDO |
110 |
ENDDO |
ENDDO |
111 |
ENDDO |
ENDDO |