1040 |
#endif |
#endif |
1041 |
do np=1,npmax |
do np=1,npmax |
1042 |
tmpz=max(0. _d 0,(allphyto(nz)-phygrazmin) ) |
tmpz=max(0. _d 0,(allphyto(nz)-phygrazmin) ) |
1043 |
grazphy(np,nz)=grazemax(nz)* |
grazphy(np,nz)=grazemax(nz)*zooTempFunction(nz)* |
1044 |
#ifdef SER_GRAZ |
#ifdef SER_GRAZ |
1045 |
c as in Vallina et al, 2011 |
c as in Vallina et al, 2011 |
1046 |
& (((palat(np,nz)*phyto(np)/allphyto(nz))*phyto(np))/ |
& (((palat(np,nz)*phyto(np)/allphyto(nz))*phyto(np))/ |
1080 |
sumgrazlossPIC(nz)=0. _d 0 |
sumgrazlossPIC(nz)=0. _d 0 |
1081 |
#endif |
#endif |
1082 |
do np=1,npmax |
do np=1,npmax |
1083 |
|
#ifdef FIX_ZOO_QUOTAS |
1084 |
|
sumgrazzoo(nz)=sumgrazzoo(nz)+ |
1085 |
|
& asseff(np,nz)*grazphy(np,nz)*zooP(nz) |
1086 |
|
sumgrazloss(nz)=sumgrazloss(nz)+ |
1087 |
|
& (1. _d 0-asseff(np,nz))*grazphy(np,nz)*zooP(nz) |
1088 |
|
sumgrazzooN(nz)=sumgrazzooN(nz)+ |
1089 |
|
& asseff(np,nz)*grazphy(np,nz)*zooP(nz)*R_NP_zoo(nz) |
1090 |
|
sumgrazlossN(nz)=sumgrazlossN(nz)+ |
1091 |
|
& (R_NP(np)-asseff(np,nz)*R_NP_zoo(nz))* |
1092 |
|
& grazphy(np,nz)*zooP(nz) |
1093 |
|
sumgrazzooFe(nz)=sumgrazzooFe(nz)+ |
1094 |
|
& asseff(np,nz)*grazphy(np,nz)* |
1095 |
|
& zooP(nz)*R_FeP_zoo(nz) |
1096 |
|
sumgrazlossFe(nz)=sumgrazlossFe(nz)+ |
1097 |
|
& (R_FeP(np)-asseff(np,nz)*R_FeP_zoo(nz))* |
1098 |
|
& grazphy(np,nz)*zooP(nz) |
1099 |
|
sumgrazzooSi(nz)=sumgrazzooSi(nz)+ |
1100 |
|
& asseff(np,nz)*grazphy(np,nz)* |
1101 |
|
& zooP(nz)*R_SiP_zoo(nz) |
1102 |
|
sumgrazlossSi(nz)=sumgrazlossSi(nz)+ |
1103 |
|
& (R_SiP(np)-asseff(np,nz)*R_SiP_zoo(nz))* |
1104 |
|
& grazphy(np,nz)*zooP(nz) |
1105 |
|
#ifdef ALLOW_CARBON |
1106 |
|
sumgrazzooC(nz)=sumgrazzooC(nz)+ |
1107 |
|
& asseff(np,nz)*grazphy(np,nz)*zooP(nz)*R_PC_zoo(nz) |
1108 |
|
sumgrazlossC(nz)=sumgrazlossC(nz)+ |
1109 |
|
& (R_PC(np)-asseff(np,nz)*R_PC_zoo(nz))* |
1110 |
|
& grazphy(np,nz)*zooP(nz) |
1111 |
|
sumgrazlossPIC(nz)=sumgrazlossPIC(nz)+ |
1112 |
|
& (1. _d 0)*grazphy(np,nz)* |
1113 |
|
& zooP(nz)*R_PC(np)*R_PICPOC(np) |
1114 |
|
#endif |
1115 |
|
#else |
1116 |
sumgrazzoo(nz)=sumgrazzoo(nz)+ |
sumgrazzoo(nz)=sumgrazzoo(nz)+ |
1117 |
& asseff(np,nz)*grazphy(np,nz)*zooP(nz) |
& asseff(np,nz)*grazphy(np,nz)*zooP(nz) |
1118 |
sumgrazloss(nz)=sumgrazloss(nz)+ |
sumgrazloss(nz)=sumgrazloss(nz)+ |
1144 |
& (1. _d 0)*grazphy(np,nz)* |
& (1. _d 0)*grazphy(np,nz)* |
1145 |
& zooP(nz)*R_PC(np)*R_PICPOC(np) |
& zooP(nz)*R_PC(np)*R_PICPOC(np) |
1146 |
#endif |
#endif |
1147 |
|
#endif |
1148 |
enddo |
enddo |
1149 |
enddo |
enddo |
1150 |
if (debug.eq.2) print*,'sumgrazzoo',sumgrazzoo |
if (debug.eq.2) print*,'sumgrazzoo',sumgrazzoo |
1271 |
& ExportFracZ(nz)*( mortzoo(nz)* |
& ExportFracZ(nz)*( mortzoo(nz)* |
1272 |
& mortZTempFunction*zooN(nz) |
& mortZTempFunction*zooN(nz) |
1273 |
& + mortzoo2(nz)* |
& + mortzoo2(nz)* |
1274 |
& mortZ2TempFunction*zooN(nz)**2 ) |
& mortZ2TempFunction*zooN(nz)*zooP(nz) ) |
1275 |
totzoo_don=totzoo_don+ |
totzoo_don=totzoo_don+ |
1276 |
& (1. _d 0-ExportFracZ(nz))*( |
& (1. _d 0-ExportFracZ(nz))*( |
1277 |
& mortzoo(nz)* |
& mortzoo(nz)* |
1278 |
& mortZTempFunction*zooN(nz)+ |
& mortZTempFunction*zooN(nz)+ |
1279 |
& mortzoo2(nz)* |
& mortzoo2(nz)* |
1280 |
& mortZ2TempFunction*zooN(nz)**2 ) |
& mortZ2TempFunction*zooN(nz)*zooP(nz) ) |
1281 |
totzoo_pofe=totzoo_pofe+ |
totzoo_pofe=totzoo_pofe+ |
1282 |
& ExportFracZ(nz)*( mortzoo(nz)* |
& ExportFracZ(nz)*( mortzoo(nz)* |
1283 |
& mortZTempFunction*zooFe(nz) |
& mortZTempFunction*zooFe(nz) |
1284 |
& + mortzoo2(nz)* |
& + mortzoo2(nz)* |
1285 |
& mortZ2TempFunction*zooFe(nz)**2 ) |
& mortZ2TempFunction*zooFe(nz)*zooP(nz) ) |
1286 |
totzoo_dofe=totzoo_dofe+ |
totzoo_dofe=totzoo_dofe+ |
1287 |
& (1. _d 0-ExportFracZ(nz))*( |
& (1. _d 0-ExportFracZ(nz))*( |
1288 |
& mortzoo(nz)* |
& mortzoo(nz)* |
1289 |
& mortZTempFunction*zooFe(nz) + |
& mortZTempFunction*zooFe(nz) + |
1290 |
& mortzoo2(nz)* |
& mortzoo2(nz)* |
1291 |
& mortZ2TempFunction*zooFe(nz)**2 ) |
& mortZ2TempFunction*zooFe(nz)*zooP(nz) ) |
1292 |
totzoo_posi=totzoo_posi+ |
totzoo_posi=totzoo_posi+ |
1293 |
& ( mortzoo(nz)* |
& ( mortzoo(nz)* |
1294 |
& mortZTempFunction*zooSi(nz)+ |
& mortZTempFunction*zooSi(nz)+ |
1295 |
& mortzoo2(nz)* |
& mortzoo2(nz)* |
1296 |
& mortZ2TempFunction*zooSi(nz)**2 ) |
& mortZ2TempFunction*zooSi(nz)*zooP(nz) ) |
1297 |
#ifdef ALLOW_CARBON |
#ifdef ALLOW_CARBON |
1298 |
totzoo_poc=totzoo_poc+ |
totzoo_poc=totzoo_poc+ |
1299 |
& ExportFracZ(nz)*( mortzoo(nz)* |
& ExportFracZ(nz)*( mortzoo(nz)* |
1300 |
& mortZTempFunction*zooClocal(nz) |
& mortZTempFunction*zooClocal(nz) |
1301 |
& + mortzoo2(nz)* |
& + mortzoo2(nz)* |
1302 |
& mortZ2TempFunction*zooClocal(nz)**2 ) |
& mortZ2TempFunction*zooClocal(nz)*zooP(nz) ) |
1303 |
totzoo_doc=totzoo_doc+ |
totzoo_doc=totzoo_doc+ |
1304 |
& (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)* |
& (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)* |
1305 |
& mortZTempFunction*zooClocal(nz) |
& mortZTempFunction*zooClocal(nz) |
1306 |
& + mortzoo2(nz)* |
& + mortzoo2(nz)* |
1307 |
& mortZ2TempFunction*zooClocal(nz)**2 ) |
& mortZ2TempFunction*zooClocal(nz)*zooP(nz) ) |
1308 |
#endif |
#endif |
1309 |
enddo |
enddo |
1310 |
|
|
1371 |
if (debug.eq.14) print*,'grow', grow(np), pcarbon(np) |
if (debug.eq.14) print*,'grow', grow(np), pcarbon(np) |
1372 |
#ifdef DYNAMIC_CHL |
#ifdef DYNAMIC_CHL |
1373 |
c geider 97 for dChl/dt (source part) Eq. 3 |
c geider 97 for dChl/dt (source part) Eq. 3 |
1374 |
if (acclim(np).gt. 0. _d 0) then |
if (acclim(np).gt. 0. _d 0.and. |
1375 |
|
& alpha_I(np).gt. 0. _d 0) then |
1376 |
rhochl(np)=chl2cmax(np) * |
rhochl(np)=chl2cmax(np) * |
1377 |
& (grow(np)/(alpha_I(np)*acclim(np)) ) |
& (grow(np)/(alpha_I(np)*acclim(np)) ) |
1378 |
else |
else |
1689 |
& - mortzoo(nz)* |
& - mortzoo(nz)* |
1690 |
& mortZTempFunction*zooN(nz) |
& mortZTempFunction*zooN(nz) |
1691 |
& - mortzoo2(nz)* |
& - mortzoo2(nz)* |
1692 |
& mortZ2TempFunction*zooN(nz)**2 |
& mortZ2TempFunction*zooN(nz)*zooP(nz) |
1693 |
dzooFedt(nz) = dzooFedt(nz) |
dzooFedt(nz) = dzooFedt(nz) |
1694 |
& - mortzoo(nz)* |
& - mortzoo(nz)* |
1695 |
& mortZTempFunction*zooFe(nz) |
& mortZTempFunction*zooFe(nz) |
1696 |
& - mortzoo2(nz)* |
& - mortzoo2(nz)* |
1697 |
& mortZ2TempFunction*zooFe(nz)**2 |
& mortZ2TempFunction*zooFe(nz)*zooP(nz) |
1698 |
dzooSidt(nz) = dzooSidt(nz) |
dzooSidt(nz) = dzooSidt(nz) |
1699 |
& - mortzoo(nz)* |
& - mortzoo(nz)* |
1700 |
& mortZTempFunction*zooSi(nz) |
& mortZTempFunction*zooSi(nz) |
1701 |
& - mortzoo2(nz)* |
& - mortzoo2(nz)* |
1702 |
& mortZ2TempFunction*zooSi(nz)**2 |
& mortZ2TempFunction*zooSi(nz)*zooP(nz) |
1703 |
enddo |
enddo |
1704 |
|
|
1705 |
|
|
1819 |
& - mortzoo(nz)* |
& - mortzoo(nz)* |
1820 |
& mortZTempFunction*zooClocal(nz) |
& mortZTempFunction*zooClocal(nz) |
1821 |
& - mortzoo2(nz)* |
& - mortzoo2(nz)* |
1822 |
& mortZ2TempFunction*zooClocal(nz)**2 |
& mortZ2TempFunction*zooClocal(nz)*zooP(nz) |
1823 |
enddo |
enddo |
1824 |
#else |
#else |
1825 |
do nz=1,nzmax |
do nz=1,nzmax |
1827 |
& - mortzoo(nz)* |
& - mortzoo(nz)* |
1828 |
& mortZTempFunction*zooClocal(nz) |
& mortZTempFunction*zooClocal(nz) |
1829 |
& - mortzoo2(nz)* |
& - mortzoo2(nz)* |
1830 |
& mortZ2TempFunction*zooClocal(nz)**2 |
& mortZ2TempFunction*zooClocal(nz)*zooP(nz) |
1831 |
enddo |
enddo |
1832 |
#endif |
#endif |
1833 |
|
|
1834 |
|
#endif /* ALLOW_CARBON */ |
1835 |
|
|
1836 |
#ifdef ALLOW_CDOM |
#ifdef ALLOW_CDOM |
1837 |
dcdomdt = totphy_cdomp + totzoo_cdomp + preminP_cdom |
dcdomdt = totphy_cdomp + totzoo_cdomp + preminP_cdom |
1838 |
& -cdomp_degrd |
& -cdomp_degrd |
1839 |
#endif |
#endif |
1840 |
|
|
|
#endif |
|
|
|
|
1841 |
if (debug.eq.10) print*,'dDOPdt', dDOPdt |
if (debug.eq.10) print*,'dDOPdt', dDOPdt |
1842 |
if (debug.eq.10) print*,'dpopdt',dpopdt |
if (debug.eq.10) print*,'dpopdt',dpopdt |
1843 |
if (debug.eq.10) print*,'dDONdt',dDONdt |
if (debug.eq.10) print*,'dDONdt',dDONdt |