77 |
#ifdef DYNAMIC_CHL |
#ifdef DYNAMIC_CHL |
78 |
O dphychl, Chlup, |
O dphychl, Chlup, |
79 |
#endif |
#endif |
80 |
|
#ifdef ALLOW_CDOM |
81 |
|
O dcdomdt , |
82 |
|
I cdomlocal, |
83 |
|
#endif |
84 |
#ifdef WAVEBANDS |
#ifdef WAVEBANDS |
85 |
I PARwlocal, |
I PARwlocal, |
86 |
#endif |
#endif |
207 |
_RL Chlup(npmax) |
_RL Chlup(npmax) |
208 |
#endif |
#endif |
209 |
#endif |
#endif |
210 |
|
#ifdef ALLOW_CDOM |
211 |
|
_RL cdomlocal |
212 |
|
_RL dcdomdt |
213 |
|
#ifdef ALLOW_CARBON |
214 |
|
_RL cdomclocal, dcdomcdt |
215 |
|
#endif |
216 |
|
#endif |
217 |
#ifdef ALLOW_PAR_DAY |
#ifdef ALLOW_PAR_DAY |
218 |
_RL PARdaylocal |
_RL PARdaylocal |
219 |
#endif |
#endif |
251 |
_RL grow(npmax) |
_RL grow(npmax) |
252 |
_RL PspecificPO4(npmax) |
_RL PspecificPO4(npmax) |
253 |
_RL phytoTempFunction(npmax) |
_RL phytoTempFunction(npmax) |
254 |
|
_RL mortPTempFunction |
255 |
_RL dummy |
_RL dummy |
256 |
_RL Ndummy |
_RL Ndummy |
257 |
_RL Nsourcelimit(npmax) |
_RL Nsourcelimit(npmax) |
282 |
#ifdef OLD_GRAZE |
#ifdef OLD_GRAZE |
283 |
c variables for zooplankton grazing rates |
c variables for zooplankton grazing rates |
284 |
_RL zooTempFunction(nzmax) |
_RL zooTempFunction(nzmax) |
285 |
|
_RL mortZTempFunction |
286 |
|
_RL mortZ2TempFunction |
287 |
_RL grazing_phyto(npmax) |
_RL grazing_phyto(npmax) |
288 |
_RL grazingP(nzmax) |
_RL grazingP(nzmax) |
289 |
_RL grazingN(nzmax) |
_RL grazingN(nzmax) |
292 |
#else |
#else |
293 |
c variables for zooplankton grazing rates |
c variables for zooplankton grazing rates |
294 |
_RL zooTempFunction(nzmax) |
_RL zooTempFunction(nzmax) |
295 |
|
_RL mortZTempFunction |
296 |
|
_RL mortZ2TempFunction |
297 |
_RL allphyto(nzmax) |
_RL allphyto(nzmax) |
298 |
_RL denphyto(nzmax) |
_RL denphyto(nzmax) |
299 |
_RL grazphy(npmax,nzmax) |
_RL grazphy(npmax,nzmax) |
320 |
#endif |
#endif |
321 |
#endif |
#endif |
322 |
|
|
323 |
|
#ifdef ALLOW_CDOM |
324 |
|
_RL cdomp_degrd, cdomn_degrd, cdomfe_degrd |
325 |
|
_RL preminP_cdom, preminN_cdom, preminFe_cdom |
326 |
|
#ifdef ALLOW_CARBON |
327 |
|
_RL cdomc_degrd |
328 |
|
_RL preminC_cdom |
329 |
|
#endif |
330 |
|
#endif |
331 |
|
|
332 |
#ifdef DAR_DIAG_CHL |
#ifdef DAR_DIAG_CHL |
333 |
_RL tmppcm |
_RL tmppcm |
334 |
_RL tmpchl2c |
_RL tmpchl2c |
401 |
_RL totzoo_pofe |
_RL totzoo_pofe |
402 |
_RL totzoo_posi |
_RL totzoo_posi |
403 |
|
|
404 |
|
#ifdef ALLOW_CDOM |
405 |
|
_RL totphy_cdomp |
406 |
|
_RL totphy_cdomn |
407 |
|
_RL totphy_cdomfe |
408 |
|
_RL totzoo_cdomp |
409 |
|
_RL totzoo_cdomn |
410 |
|
_RL totzoo_cdomfe |
411 |
|
#ifdef ALLOW_CARBON |
412 |
|
_RL totphy_cdomc |
413 |
|
_RL totzoo_cdomc |
414 |
|
#endif |
415 |
|
#endif |
416 |
|
|
417 |
_RL NO2prod |
_RL NO2prod |
418 |
_RL NO3prod |
_RL NO3prod |
419 |
|
|
605 |
|
|
606 |
c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
607 |
call MONOD_TEMPFUNC(Tlocal,phytoTempFunction, |
call MONOD_TEMPFUNC(Tlocal,phytoTempFunction, |
608 |
& zooTempFunction, reminTempFunction, myThid) |
& zooTempFunction, reminTempFunction, |
609 |
|
& mortPTempFunction, mortZTempFunction, |
610 |
|
& mortZ2TempFunction, myThid) |
611 |
if (debug.eq.1) print*,'phytoTempFunction', |
if (debug.eq.1) print*,'phytoTempFunction', |
612 |
& phytoTempFunction, Tlocal |
& phytoTempFunction, Tlocal |
613 |
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc |
1089 |
c accumulate particulate and dissolved detritus |
c accumulate particulate and dissolved detritus |
1090 |
do np=1, npmax |
do np=1, npmax |
1091 |
totphy_pop=totphy_pop+ |
totphy_pop=totphy_pop+ |
1092 |
& ExportFracP(np)*mortphy(np)*phytomin(np) |
& ExportFracP(np)*mortphy(np)* |
1093 |
|
& mortPTempFunction*phytomin(np) |
1094 |
totphy_dop=totphy_dop+ |
totphy_dop=totphy_dop+ |
1095 |
& (1. _d 0-ExportFracP(np))*mortphy(np)*phytomin(np) |
& (1. _d 0-ExportFracP(np))*mortphy(np)* |
1096 |
|
& mortPTempFunction*phytomin(np) |
1097 |
totphy_pon=totphy_pon+ R_NP(np)* |
totphy_pon=totphy_pon+ R_NP(np)* |
1098 |
& ExportFracP(np)*mortphy(np)*phytomin(np) |
& ExportFracP(np)*mortphy(np)* |
1099 |
|
& mortPTempFunction*phytomin(np) |
1100 |
totphy_don=totphy_don+ R_NP(np)* |
totphy_don=totphy_don+ R_NP(np)* |
1101 |
& (1. _d 0-ExportFracP(np))*mortphy(np)*phytomin(np) |
& (1. _d 0-ExportFracP(np))*mortphy(np)* |
1102 |
|
& mortPTempFunction*phytomin(np) |
1103 |
totphy_pofe=totphy_pofe+ R_FeP(np)* |
totphy_pofe=totphy_pofe+ R_FeP(np)* |
1104 |
& ExportFracP(np)*mortphy(np)*phytomin(np) |
& ExportFracP(np)*mortphy(np)* |
1105 |
|
& mortPTempFunction*phytomin(np) |
1106 |
totphy_dofe=totphy_dofe+ R_FeP(np)* |
totphy_dofe=totphy_dofe+ R_FeP(np)* |
1107 |
& (1. _d 0-ExportFracP(np))*mortphy(np)*phytomin(np) |
& (1. _d 0-ExportFracP(np))*mortphy(np)* |
1108 |
|
& mortPTempFunction*phytomin(np) |
1109 |
totphy_posi=totphy_posi+ R_SiP(np)* |
totphy_posi=totphy_posi+ R_SiP(np)* |
1110 |
& mortphy(np)*phytomin(np) |
& mortphy(np)* |
1111 |
|
& mortPTempFunction*phytomin(np) |
1112 |
#ifdef ALLOW_CARBON |
#ifdef ALLOW_CARBON |
1113 |
totphy_poc=totphy_poc+ R_PC(np)* |
totphy_poc=totphy_poc+ R_PC(np)* |
1114 |
& ExportFracP(np)*mortphy(np)*phytomin(np) |
& ExportFracP(np)*mortphy(np)* |
1115 |
|
& mortPTempFunction*phytomin(np) |
1116 |
totphy_doc=totphy_doc+ R_PC(np)* |
totphy_doc=totphy_doc+ R_PC(np)* |
1117 |
& (1. _d 0-ExportFracP(np))*mortphy(np)*phytomin(np) |
& (1. _d 0-ExportFracP(np))*mortphy(np)* |
1118 |
|
& mortPTempFunction*phytomin(np) |
1119 |
totphy_pic=totphy_pic+ R_PC(np)*R_PICPOC(np)* |
totphy_pic=totphy_pic+ R_PC(np)*R_PICPOC(np)* |
1120 |
& mortphy(np)*phytomin(np) |
& mortphy(np)* |
1121 |
|
& mortPTempFunction*phytomin(np) |
1122 |
#endif |
#endif |
1123 |
enddo |
enddo |
1124 |
|
#ifdef ALLOW_CDOM |
1125 |
|
totphy_cdomp=(fraccdom)*totphy_dop |
1126 |
|
totphy_dop=totphy_dop-totphy_cdomp |
1127 |
|
totphy_cdomn=rnp_cdom*totphy_cdomp |
1128 |
|
totphy_don=totphy_don-totphy_cdomn |
1129 |
|
totphy_cdomfe=rfep_cdom*totphy_cdomp |
1130 |
|
totphy_dofe=totphy_dofe-totphy_cdomfe |
1131 |
|
#ifdef ALLOW_CARBON |
1132 |
|
totphy_cdomc=rcp_cdom*totphy_cdomp |
1133 |
|
totphy_doc=totphy_doc-totphy_cdomc |
1134 |
|
#endif |
1135 |
|
#endif |
1136 |
if (debug.eq.3) print*,'tot_phy_pop',totphy_pop |
if (debug.eq.3) print*,'tot_phy_pop',totphy_pop |
1137 |
if (debug.eq.3) print*,'tot_phy_dop',totphy_dop |
if (debug.eq.3) print*,'tot_phy_dop',totphy_dop |
1138 |
if (debug.eq.3) print*,'tot_phy_pon',totphy_pon |
if (debug.eq.3) print*,'tot_phy_pon',totphy_pon |
1184 |
c accumulate particulate and dissolved detritus |
c accumulate particulate and dissolved detritus |
1185 |
do nz=1, nzmax |
do nz=1, nzmax |
1186 |
totzoo_pop=totzoo_pop+ |
totzoo_pop=totzoo_pop+ |
1187 |
& ExportFracZ(nz)*( mortzoo(nz)*zooP(nz) |
& ExportFracZ(nz)*( mortzoo(nz)* |
1188 |
& + mortzoo2(nz)*zooP(nz)**2 ) |
& mortZTempFunction*zooP(nz) |
1189 |
|
& + mortzoo2(nz)* |
1190 |
|
& mortZ2TempFunction*zooP(nz)**2 ) |
1191 |
totzoo_dop=totzoo_dop+ |
totzoo_dop=totzoo_dop+ |
1192 |
& (1. _d 0-ExportFracZ(nz))*( |
& (1. _d 0-ExportFracZ(nz))*( |
1193 |
& mortzoo(nz)*zooP(nz)+ |
& mortzoo(nz)* |
1194 |
& mortzoo2(nz)*zooP(nz)**2 ) |
& mortZTempFunction*zooP(nz)+ |
1195 |
|
& mortzoo2(nz)* |
1196 |
|
& mortZ2TempFunction*zooP(nz)**2 ) |
1197 |
totzoo_pon=totzoo_pon+ |
totzoo_pon=totzoo_pon+ |
1198 |
& ExportFracZ(nz)*( mortzoo(nz)*zooN(nz) |
& ExportFracZ(nz)*( mortzoo(nz)* |
1199 |
& + mortzoo2(nz)*zooN(nz)**2 ) |
& mortZTempFunction*zooN(nz) |
1200 |
|
& + mortzoo2(nz)* |
1201 |
|
& mortZ2TempFunction*zooN(nz)**2 ) |
1202 |
totzoo_don=totzoo_don+ |
totzoo_don=totzoo_don+ |
1203 |
& (1. _d 0-ExportFracZ(nz))*( |
& (1. _d 0-ExportFracZ(nz))*( |
1204 |
& mortzoo(nz)*zooN(nz)+ |
& mortzoo(nz)* |
1205 |
& mortzoo2(nz)*zooN(nz)**2 ) |
& mortZTempFunction*zooN(nz)+ |
1206 |
|
& mortzoo2(nz)* |
1207 |
|
& mortZ2TempFunction*zooN(nz)**2 ) |
1208 |
totzoo_pofe=totzoo_pofe+ |
totzoo_pofe=totzoo_pofe+ |
1209 |
& ExportFracZ(nz)*( mortzoo(nz)*zooFe(nz) |
& ExportFracZ(nz)*( mortzoo(nz)* |
1210 |
& + mortzoo2(nz)*zooFe(nz)**2 ) |
& mortZTempFunction*zooFe(nz) |
1211 |
|
& + mortzoo2(nz)* |
1212 |
|
& mortZ2TempFunction*zooFe(nz)**2 ) |
1213 |
totzoo_dofe=totzoo_dofe+ |
totzoo_dofe=totzoo_dofe+ |
1214 |
& (1. _d 0-ExportFracZ(nz))*( |
& (1. _d 0-ExportFracZ(nz))*( |
1215 |
& mortzoo(nz)*zooFe(nz) + |
& mortzoo(nz)* |
1216 |
& mortzoo2(nz)*zooFe(nz)**2 ) |
& mortZTempFunction*zooFe(nz) + |
1217 |
|
& mortzoo2(nz)* |
1218 |
|
& mortZ2TempFunction*zooFe(nz)**2 ) |
1219 |
totzoo_posi=totzoo_posi+ |
totzoo_posi=totzoo_posi+ |
1220 |
& ( mortzoo(nz)*zooSi(nz)+ |
& ( mortzoo(nz)* |
1221 |
& mortzoo2(nz)*zooSi(nz)**2 ) |
& mortZTempFunction*zooSi(nz)+ |
1222 |
|
& mortzoo2(nz)* |
1223 |
|
& mortZ2TempFunction*zooSi(nz)**2 ) |
1224 |
#ifdef ALLOW_CARBON |
#ifdef ALLOW_CARBON |
1225 |
totzoo_poc=totzoo_poc+ |
totzoo_poc=totzoo_poc+ |
1226 |
& ExportFracZ(nz)*( mortzoo(nz)*zooClocal(nz) |
& ExportFracZ(nz)*( mortzoo(nz)* |
1227 |
& + mortzoo2(nz)*zooClocal(nz)**2 ) |
& mortZTempFunction*zooClocal(nz) |
1228 |
|
& + mortzoo2(nz)* |
1229 |
|
& mortZ2TempFunction*zooClocal(nz)**2 ) |
1230 |
totzoo_doc=totzoo_doc+ |
totzoo_doc=totzoo_doc+ |
1231 |
& (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)*zooClocal(nz) |
& (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)* |
1232 |
& + mortzoo2(nz)*zooClocal(nz)**2 ) |
& mortZTempFunction*zooClocal(nz) |
1233 |
|
& + mortzoo2(nz)* |
1234 |
|
& mortZ2TempFunction*zooClocal(nz)**2 ) |
1235 |
#endif |
#endif |
1236 |
enddo |
enddo |
1237 |
|
|
1261 |
#endif |
#endif |
1262 |
enddo |
enddo |
1263 |
#endif |
#endif |
1264 |
|
|
1265 |
|
#ifdef ALLOW_CDOM |
1266 |
|
totzoo_cdomp=(fraccdom)*totzoo_dop |
1267 |
|
totzoo_dop=totzoo_dop-totzoo_cdomp |
1268 |
|
totzoo_cdomn=rnp_cdom*totzoo_cdomp |
1269 |
|
totzoo_don=totzoo_don-totzoo_cdomn |
1270 |
|
totzoo_cdomfe=rfep_cdom*totzoo_cdomp |
1271 |
|
totzoo_dofe=totzoo_dofe-totzoo_cdomfe |
1272 |
|
#ifdef ALLOW_CARBON |
1273 |
|
totzoo_cdomc=rcp_cdom*totzoo_cdomp |
1274 |
|
totzoo_doc=totzoo_doc-totzoo_cdomc |
1275 |
|
#endif |
1276 |
|
#endif |
1277 |
if (debug.eq.5) print*,'totzoo_pop',totzoo_pop |
if (debug.eq.5) print*,'totzoo_pop',totzoo_pop |
1278 |
if (debug.eq.5) print*,'totzoo_dop',totzoo_dop |
if (debug.eq.5) print*,'totzoo_dop',totzoo_dop |
1279 |
if (debug.eq.5) print*,'totzoo_pon',totzoo_pon |
if (debug.eq.5) print*,'totzoo_pon',totzoo_pon |
1408 |
preminN = reminTempFunction * Kpremin_N*PONlocal |
preminN = reminTempFunction * Kpremin_N*PONlocal |
1409 |
preminFe = reminTempFunction * Kpremin_Fe*POFelocal |
preminFe = reminTempFunction * Kpremin_Fe*POFelocal |
1410 |
preminSi = reminTempFunction * Kpremin_Si*PSilocal |
preminSi = reminTempFunction * Kpremin_Si*PSilocal |
1411 |
|
#ifdef ALLOW_CDOM |
1412 |
|
preminP_cdom = fraccdom*preminP |
1413 |
|
preminP=preminP-preminP_cdom |
1414 |
|
preminN_cdom = rnp_cdom*preminP_cdom |
1415 |
|
preminN=preminN-preminN_cdom |
1416 |
|
preminFe_cdom = rfep_cdom*preminP_cdom |
1417 |
|
preminFe=preminFe-preminFe_cdom |
1418 |
|
#endif |
1419 |
|
|
1420 |
#ifdef ALLOW_CARBON |
#ifdef ALLOW_CARBON |
1421 |
DOCremin = reminTempFunction * Kdoc * DOClocal |
DOCremin = reminTempFunction * Kdoc * DOClocal |
1422 |
preminC = reminTempFunction * Kpremin_C*POClocal |
preminC = reminTempFunction * Kpremin_C*POClocal |
1423 |
|
#ifdef ALLOW_CDOM |
1424 |
|
preminC_cdom = rcp_cdom*preminP_cdom |
1425 |
|
preminC=preminC-preminC_cdom |
1426 |
|
#endif |
1427 |
c dissolution |
c dissolution |
1428 |
disscPIC = Kdissc*PIClocal |
disscPIC = Kdissc*PIClocal |
1429 |
#endif |
#endif |
1430 |
|
|
1431 |
|
#ifdef ALLOW_CDOM |
1432 |
|
c degradation of CDOM - high when bleached by light |
1433 |
|
cdomp_degrd = reminTempFunction * cdomlocal |
1434 |
|
& *(cdomdegrd+cdombleach*min(PARlocal/PARcdom,1. _d 0) ) |
1435 |
|
cdomn_degrd = rnp_cdom * cdomp_degrd |
1436 |
|
cdomfe_degrd= rfep_cdom * cdomp_degrd |
1437 |
|
#ifdef ALLOW_CARBON |
1438 |
|
cdomc_degrd = rcp_cdom * cdomp_degrd |
1439 |
|
#endif |
1440 |
|
#endif |
1441 |
|
|
1442 |
c chemistry |
c chemistry |
1443 |
c NH4 -> NO2 -> NO3 by bacterial action |
c NH4 -> NO2 -> NO3 by bacterial action |
1444 |
NO2prod = knita*( 1. _d 0-min(PARlocal/PAR0,1. _d 0) ) |
NO2prod = knita*( 1. _d 0-min(PARlocal/PAR0,1. _d 0) ) |
1465 |
#else |
#else |
1466 |
& - sumgrazphy(np) |
& - sumgrazphy(np) |
1467 |
#endif |
#endif |
1468 |
& - mortphy(np)*phytomin(np) |
& - mortphy(np)* |
1469 |
|
& mortPTempFunction*phytomin(np) |
1470 |
& + psinkphy(np) |
& + psinkphy(np) |
1471 |
#ifdef GEIDER |
#ifdef GEIDER |
1472 |
#ifdef DYNAMIC_CHL |
#ifdef DYNAMIC_CHL |
1481 |
#else |
#else |
1482 |
& - sumgrazphy(np) |
& - sumgrazphy(np) |
1483 |
#endif |
#endif |
1484 |
& - mortphy(np)*phytomin(np)) *chl2c(np)*R_PC(np) |
& - mortphy(np)* |
1485 |
|
& mortPTempFunction*phytomin(np)) |
1486 |
|
& *chl2c(np)*R_PC(np) |
1487 |
& + psinkChl(np) |
& + psinkChl(np) |
1488 |
#endif |
#endif |
1489 |
Chl=Chl + phychl(np) |
Chl=Chl + phychl(np) |
1494 |
#ifdef OLD_GRAZE |
#ifdef OLD_GRAZE |
1495 |
tmpr=grazing_phyto(np)* |
tmpr=grazing_phyto(np)* |
1496 |
& (phytomin(np)/(phytomin(np) + kgrazesat)) |
& (phytomin(np)/(phytomin(np) + kgrazesat)) |
1497 |
& + mortphy(np)*phytomin(np) |
& + mortphy(np)* |
1498 |
|
& mortPTempFunction*phytomin(np) |
1499 |
& - psinkphy(np) |
& - psinkphy(np) |
1500 |
#else |
#else |
1501 |
tmpr=sumgrazphy(np) |
tmpr=sumgrazphy(np) |
1502 |
& + mortphy(np)*phytomin(np) |
& + mortphy(np)* |
1503 |
|
& mortPTempFunction*phytomin(np) |
1504 |
& - psinkphy(np) |
& - psinkphy(np) |
1505 |
#endif |
#endif |
1506 |
#ifdef DAR_DIAG_RSTAR |
#ifdef DAR_DIAG_RSTAR |
1567 |
do nz=1,nzmax |
do nz=1,nzmax |
1568 |
c zoo in P currency |
c zoo in P currency |
1569 |
dzooPdt(nz) = dzooPdt(nz) |
dzooPdt(nz) = dzooPdt(nz) |
1570 |
& - mortzoo(nz)*zooP(nz) |
& - mortzoo(nz)* |
1571 |
& - mortzoo2(nz)*zooP(nz)**2 |
& mortZTempFunction*zooP(nz) |
1572 |
|
& - mortzoo2(nz)* |
1573 |
|
& mortZ2TempFunction*zooP(nz)**2 |
1574 |
c zooplankton in other currencies |
c zooplankton in other currencies |
1575 |
C zooplankton stoichiometry varies according to food source |
C zooplankton stoichiometry varies according to food source |
1576 |
dzooNdt(nz) = dzooNdt(nz) |
dzooNdt(nz) = dzooNdt(nz) |
1577 |
& - mortzoo(nz)*zooN(nz) |
& - mortzoo(nz)* |
1578 |
& - mortzoo2(nz)*zooN(nz)**2 |
& mortZTempFunction*zooN(nz) |
1579 |
|
& - mortzoo2(nz)* |
1580 |
|
& mortZ2TempFunction*zooN(nz)**2 |
1581 |
dzooFedt(nz) = dzooFedt(nz) |
dzooFedt(nz) = dzooFedt(nz) |
1582 |
& - mortzoo(nz)*zooFe(nz) |
& - mortzoo(nz)* |
1583 |
& - mortzoo2(nz)*zooFe(nz)**2 |
& mortZTempFunction*zooFe(nz) |
1584 |
|
& - mortzoo2(nz)* |
1585 |
|
& mortZ2TempFunction*zooFe(nz)**2 |
1586 |
dzooSidt(nz) = dzooSidt(nz) |
dzooSidt(nz) = dzooSidt(nz) |
1587 |
& - mortzoo(nz)*zooSi(nz) |
& - mortzoo(nz)* |
1588 |
& - mortzoo2(nz)*zooSi(nz)**2 |
& mortZTempFunction*zooSi(nz) |
1589 |
|
& - mortzoo2(nz)* |
1590 |
|
& mortZ2TempFunction*zooSi(nz)**2 |
1591 |
enddo |
enddo |
1592 |
|
|
1593 |
|
|
1594 |
c sum contributions to inorganic nutrient tendencies |
c sum contributions to inorganic nutrient tendencies |
1595 |
dPO4dt = - consumpPO4 + preminP + DOPremin |
dPO4dt = - consumpPO4 + |
1596 |
dNH4dt = - consumpNH4 + preminN + DONremin |
#ifdef ALLOW_CDOM |
1597 |
|
& DOPremin |
1598 |
|
#else |
1599 |
|
& preminP + DOPremin |
1600 |
|
#endif |
1601 |
|
dNH4dt = - consumpNH4 + |
1602 |
|
#ifdef ALLOW_CDOM |
1603 |
|
& DONremin |
1604 |
|
#else |
1605 |
|
& preminN + DONremin |
1606 |
|
#endif |
1607 |
& - NO2prod |
& - NO2prod |
1608 |
dNO2dt = - consumpNO2 |
dNO2dt = - consumpNO2 |
1609 |
& + NO2prod - NO3prod |
& + NO2prod - NO3prod |
1612 |
c-ONLYNO3 dNO3dt = - consumpNO3 + preminN + DONremin |
c-ONLYNO3 dNO3dt = - consumpNO3 + preminN + DONremin |
1613 |
#ifdef ALLOW_DENIT |
#ifdef ALLOW_DENIT |
1614 |
if (O2local.le.O2crit) then |
if (O2local.le.O2crit) then |
1615 |
denit = denit_np*(preminP + DOPremin) |
denit = denit_np |
1616 |
|
#ifdef ALLOW_CDOM |
1617 |
|
& *(DOPremin) |
1618 |
|
#else |
1619 |
|
& *(preminP + DOPremin) |
1620 |
|
#endif |
1621 |
dNO3dt = dNO3dt - denit |
dNO3dt = dNO3dt - denit |
1622 |
dNH4dt = dNH4dt - (preminN + DONremin) |
dNH4dt = dNH4dt - |
1623 |
|
#ifdef ALLOW_CDOM |
1624 |
|
& (DONremin) |
1625 |
|
#else |
1626 |
|
& (preminN + DONremin) |
1627 |
|
#endif |
1628 |
endif |
endif |
1629 |
#endif |
#endif |
1630 |
dFeTdt = - consumpFeT + preminFe + DOFeremin |
dFeTdt = - consumpFeT + |
1631 |
|
#ifdef ALLOW_CDOM |
1632 |
|
& DOFeremin |
1633 |
|
#else |
1634 |
|
& preminFe + DOFeremin |
1635 |
|
#endif |
1636 |
#ifdef PART_SCAV |
#ifdef PART_SCAV |
1637 |
& - scav_part*freefelocal + |
& - scav_part*freefelocal + |
1638 |
#else |
#else |
1643 |
|
|
1644 |
c tendency of dissolved organic pool |
c tendency of dissolved organic pool |
1645 |
dDOPdt = totphy_dop + totzoo_dop - DOPremin |
dDOPdt = totphy_dop + totzoo_dop - DOPremin |
1646 |
|
#ifdef ALLOW_CDOM |
1647 |
|
& +preminP + cdomp_degrd |
1648 |
|
#endif |
1649 |
dDONdt = totphy_don + totzoo_don - DONremin |
dDONdt = totphy_don + totzoo_don - DONremin |
1650 |
|
#ifdef ALLOW_CDOM |
1651 |
|
& +preminN + cdomn_degrd |
1652 |
|
#endif |
1653 |
dDOFedt = totphy_dofe + totzoo_dofe - DOFeremin |
dDOFedt = totphy_dofe + totzoo_dofe - DOFeremin |
1654 |
|
#ifdef ALLOW_CDOM |
1655 |
|
& +preminFe + cdomfe_degrd |
1656 |
|
#endif |
1657 |
|
|
1658 |
c tendency of particulate detritus pools |
c tendency of particulate detritus pools |
1659 |
dpopdt = totphy_pop + totzoo_pop - preminP + psinkP |
dpopdt = totphy_pop + totzoo_pop - preminP + psinkP |
1660 |
|
#ifdef ALLOW_CDOM |
1661 |
|
& -preminP_cdom |
1662 |
|
#endif |
1663 |
dpondt = totphy_pon + totzoo_pon - preminN + psinkN |
dpondt = totphy_pon + totzoo_pon - preminN + psinkN |
1664 |
|
#ifdef ALLOW_CDOM |
1665 |
|
& -preminN_cdom |
1666 |
|
#endif |
1667 |
dpofedt = totphy_pofe + totzoo_pofe - preminFe + psinkFe |
dpofedt = totphy_pofe + totzoo_pofe - preminFe + psinkFe |
1668 |
|
#ifdef ALLOW_CDOM |
1669 |
|
& -preminFe_cdom |
1670 |
|
#endif |
1671 |
dpSidt = totphy_posi + totzoo_posi - preminSi + psinkSi |
dpSidt = totphy_posi + totzoo_posi - preminSi + psinkSi |
1672 |
#ifdef ALLOW_CARBON |
#ifdef ALLOW_CARBON |
1673 |
dDICdt = - consumpDIC - consumpDIC_PIC |
dDICdt = - consumpDIC - consumpDIC_PIC |
1674 |
|
#ifdef ALLOW_CDOM |
1675 |
|
& + DOCremin |
1676 |
|
#else |
1677 |
& + preminC + DOCremin |
& + preminC + DOCremin |
1678 |
|
#endif |
1679 |
& + disscPIC |
& + disscPIC |
1680 |
dDOCdt = totphy_doc + totzoo_doc - DOCremin |
dDOCdt = totphy_doc + totzoo_doc - DOCremin |
1681 |
|
#ifdef ALLOW_CDOM |
1682 |
|
& +preminC + cdomc_degrd |
1683 |
|
#endif |
1684 |
dPOCdt = totphy_poc + totzoo_poc - preminC + psinkC |
dPOCdt = totphy_poc + totzoo_poc - preminC + psinkC |
1685 |
|
#ifdef ALLOW_CDOM |
1686 |
|
& -preminC_cdom |
1687 |
|
#endif |
1688 |
dPICdt = totphy_pic + totzoo_pic - disscPIC + psinkPIC |
dPICdt = totphy_pic + totzoo_pic - disscPIC + psinkPIC |
1689 |
dALKdt = - dNO3dt - 2.d0 * (consumpDIC_PIC - disscPIC) |
dALKdt = - dNO3dt - 2.d0 * (consumpDIC_PIC - disscPIC) |
1690 |
c should be = O2prod - preminP - DOPremin? |
c should be = O2prod - preminP - DOPremin? |
1694 |
dO2dt = R_OP*consumpPO4 |
dO2dt = R_OP*consumpPO4 |
1695 |
c loss of O2 by remineralization |
c loss of O2 by remineralization |
1696 |
if (O2local.gt.O2crit) then |
if (O2local.gt.O2crit) then |
1697 |
dO2dt = dO2dt - R_OP*(preminP + DOPremin) |
dO2dt = dO2dt - R_OP |
1698 |
|
#ifdef ALLOW_CDOM |
1699 |
|
& *(DOPremin) |
1700 |
|
#else |
1701 |
|
& *(preminP + DOPremin) |
1702 |
|
#endif |
1703 |
endif |
endif |
1704 |
#ifdef OLD_GRAZE |
#ifdef OLD_GRAZE |
1705 |
do nz=1,nzmax |
do nz=1,nzmax |
1706 |
dzooCdt(nz) = grazingC(nz)*zooClocal(nz) |
dzooCdt(nz) = grazingC(nz)*zooClocal(nz) |
1707 |
& - mortzoo(nz)*zooClocal(nz) |
& - mortzoo(nz)* |
1708 |
& - mortzoo2(nz)*zooClocal(nz)**2 |
& mortZTempFunction*zooClocal(nz) |
1709 |
|
& - mortzoo2(nz)* |
1710 |
|
& mortZ2TempFunction*zooClocal(nz)**2 |
1711 |
enddo |
enddo |
1712 |
#else |
#else |
1713 |
do nz=1,nzmax |
do nz=1,nzmax |
1714 |
dzooCdt(nz) = sumgrazzooc(nz) |
dzooCdt(nz) = sumgrazzooc(nz) |
1715 |
& - mortzoo(nz)*zooClocal(nz) |
& - mortzoo(nz)* |
1716 |
& - mortzoo2(nz)*zooClocal(nz)**2 |
& mortZTempFunction*zooClocal(nz) |
1717 |
|
& - mortzoo2(nz)* |
1718 |
|
& mortZ2TempFunction*zooClocal(nz)**2 |
1719 |
enddo |
enddo |
1720 |
#endif |
#endif |
1721 |
|
|
1722 |
|
#ifdef ALLOW_CDOM |
1723 |
|
dcdomdt = totphy_cdomp + totzoo_cdomp + preminP_cdom |
1724 |
|
& -cdomp_degrd |
1725 |
|
#endif |
1726 |
|
|
1727 |
#endif |
#endif |
1728 |
|
|
1729 |
if (debug.eq.10) print*,'dDOPdt', dDOPdt |
if (debug.eq.10) print*,'dDOPdt', dDOPdt |