/[MITgcm]/MITgcm_contrib/darwin2/pkg/monod/monod_plankton.F
ViewVC logotype

Diff of /MITgcm_contrib/darwin2/pkg/monod/monod_plankton.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.7 by stephd, Thu Jun 28 20:36:11 2012 UTC revision 1.15 by jahn, Thu May 1 16:19:32 2014 UTC
# Line 48  c ANNA pass extra variables if WAVEBANDS Line 48  c ANNA pass extra variables if WAVEBANDS
48       I                       phytoup, popuplocal, ponuplocal,       I                       phytoup, popuplocal, ponuplocal,
49       I                       pofeuplocal, psiuplocal,       I                       pofeuplocal, psiuplocal,
50       I                       PARlocal,Tlocal, Slocal,       I                       PARlocal,Tlocal, Slocal,
51         I                       pCO2local,
52       I                       freefelocal, inputFelocal,       I                       freefelocal, inputFelocal,
53       I                       bottom, dzlocal,       I                       bottom, dzlocal,
54       O                       Rstarlocal, RNstarlocal,       O                       Rstarlocal, RNstarlocal,
# Line 74  c ANNA pass extra variables if WAVEBANDS Line 75  c ANNA pass extra variables if WAVEBANDS
75  #endif  #endif
76  #ifdef GEIDER  #ifdef GEIDER
77       I                       phychl,       I                       phychl,
78    #ifdef DAR_DIAG_EK
79         O                       Ek, EkoverE,
80    #endif
81    #ifdef DAR_DIAG_PARW
82         O                       chl2c,
83    #endif
84  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
85       O                       dphychl, Chlup,       O                       dphychl, Chlup,
86    #ifdef DAR_DIAG_EK
87         O                       acclim,
88    #endif
89  #endif  #endif
90  #ifdef ALLOW_CDOM  #ifdef ALLOW_CDOM
91       O                       dcdomdt   ,       O                       dcdomdt   ,
# Line 83  c ANNA pass extra variables if WAVEBANDS Line 93  c ANNA pass extra variables if WAVEBANDS
93  #endif  #endif
94  #ifdef WAVEBANDS  #ifdef WAVEBANDS
95       I                       PARwlocal,       I                       PARwlocal,
96    #ifdef DAR_DIAG_EK
97         O                       Ek_nl, EkoverE_nl,
98    #endif
99  #endif  #endif
100  #endif  #endif
101  #ifdef ALLOW_PAR_DAY  #ifdef ALLOW_PAR_DAY
# Line 148  c zoo   = zooplankton Line 161  c zoo   = zooplankton
161           _RL PARlocal           _RL PARlocal
162           _RL Tlocal           _RL Tlocal
163           _RL Slocal           _RL Slocal
164             _RL pCO2local
165           _RL freefelocal           _RL freefelocal
166           _RL inputFelocal           _RL inputFelocal
167           _RL bottom           _RL bottom
# Line 202  c zoo   = zooplankton Line 216  c zoo   = zooplankton
216  #endif  #endif
217  #ifdef GEIDER  #ifdef GEIDER
218           _RL phychl(npmax)           _RL phychl(npmax)
219             _RL Ek(npmax)
220             _RL EkoverE(npmax)
221             _RL chl2c(npmax)
222  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
223           _RL dphychl(npmax)           _RL dphychl(npmax)
224           _RL Chlup(npmax)           _RL Chlup(npmax)
225             _RL acclim(npmax)
226  #endif  #endif
227  #endif  #endif
228  #ifdef ALLOW_CDOM  #ifdef ALLOW_CDOM
# Line 226  c ANNA Global variables for WAVEBANDS Line 244  c ANNA Global variables for WAVEBANDS
244  c ANNA these variables are passed in/out of darwin_forcing.F  c ANNA these variables are passed in/out of darwin_forcing.F
245  #ifdef WAVEBANDS  #ifdef WAVEBANDS
246           _RL PARwlocal(tlam)      !PAR at midpoint of previous(in) and local(out) gridcell           _RL PARwlocal(tlam)      !PAR at midpoint of previous(in) and local(out) gridcell
247             _RL Ek_nl(npmax,tlam)
248             _RL EkoverE_nl(npmax,tlam)
249  #endif  #endif
250  c ANNA endif  c ANNA endif
251    
   
   
   
   
252  c LOCAL VARIABLES  c LOCAL VARIABLES
253  c -------------------------------------------------------------  c -------------------------------------------------------------
254    
# Line 247  c phytoplankton specific nutrient limita Line 263  c phytoplankton specific nutrient limita
263           _RL limit(npmax)           _RL limit(npmax)
264  c phytoplankton light limitation term  c phytoplankton light limitation term
265           _RL ilimit(npmax)           _RL ilimit(npmax)
266             _RL pCO2limit(npmax)
267           _RL ngrow(npmax)           _RL ngrow(npmax)
268           _RL grow(npmax)           _RL grow(npmax)
269           _RL PspecificPO4(npmax)           _RL PspecificPO4(npmax)
# Line 312  c  variables for zooplankton grazing rat Line 329  c  variables for zooplankton grazing rat
329          _RL alpha_I(npmax)          _RL alpha_I(npmax)
330          _RL pcarbon(npmax)          _RL pcarbon(npmax)
331          _RL pcm(npmax)          _RL pcm(npmax)
         _RL chl2c(npmax)  
332  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
         _RL acclim(npmax)  
333          _RL psinkchl(npmax)          _RL psinkchl(npmax)
334          _RL rhochl(npmax)          _RL rhochl(npmax)
335  #endif  #endif
# Line 452  c ANNA inportant but local variables tha Line 467  c ANNA inportant but local variables tha
467  #endif  #endif
468  c ANNA endif  c ANNA endif
469    
 c ANNA - for inhib  
          _RL Ek  
          _RL EkoverE  
   
470  c.................................................................  c.................................................................
471    
472  #ifdef ALLOW_MUTANTS  #ifdef ALLOW_MUTANTS
# Line 513  c energetic disadvantage of using NO2/No Line 524  c energetic disadvantage of using NO2/No
524             pcarbon(np) = 0. _d 0             pcarbon(np) = 0. _d 0
525             pcm(np)=0. _d 0             pcm(np)=0. _d 0
526             chl2c(np)=0. _d 0             chl2c(np)=0. _d 0
527               Ek(np)=0. _d 0
528               EkoverE(np)=0. _d 0
529  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
530             acclim(np)=0. _d 0             acclim(np)=0. _d 0
531             psinkChl(np)=0. _d 0             psinkChl(np)=0. _d 0
532  #endif  #endif
533    #ifdef WAVEBANDS
534               do ilam=1,tlam
535                Ek_nl(np,ilam)=0. _d 0
536                EkoverE_nl(np,ilam)=0. _d 0
537               enddo
538    #endif
539           enddo           enddo
540  #endif  #endif
541                    
# Line 636  c using Platt-like equations with inhibi Line 655  c using Platt-like equations with inhibi
655  #endif  #endif
656  c ANNA endif  c ANNA endif
657    
658    c pCO2 limit - default to non
659             do np=1,npmax
660               pCO2limit(np)=1. _d 0
661    c          if (np.eq.6) then
662    c             pCO2limit(np)=1. _d 0 + (pCO2local-400. _d -6)/600 _d -6
663    c             pCO2limit(np)=max(pCO2limit(np),1. _d 0)
664    c             pCO2limit(np)=min(pCO2limit(np),2. _d 0)
665    c          endif
666               if (debug.eq.15) print*,'pco2limit',pCO2limit(np),pCO2local
667             enddo
668    
669    
670  ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc  ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
671  c Determine phytoplankton nutrient limitation as mimimum of  c Determine phytoplankton nutrient limitation as mimimum of
672  c P,N,Si,Fe. However N can be utilized in several forms, so  c P,N,Si,Fe. However N can be utilized in several forms, so
# Line 853  c ANNA endif Line 884  c ANNA endif
884  #endif  #endif
885    
886            do np = 1, npmax            do np = 1, npmax
887             pcm(np)=pcmax(np)*limit(np)*phytoTempFunction(np)             pcm(np)=pcmax(np)*limit(np)*phytoTempFunction(np)*
888         &                                         pCO2limit(np)
889  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
890             if (phyto(np).gt. 0. _d 0) then             if (phyto(np).gt. 0. _d 0) then
891               chl2c(np)=phychl(np)/(phyto(np)*R_PC(np))               chl2c(np)=phychl(np)/(phyto(np)*R_PC(np))
# Line 874  c assumes balanced growth, eq A14 in Gei Line 906  c assumes balanced growth, eq A14 in Gei
906  c Eq A1 in Geider et al 1997  c Eq A1 in Geider et al 1997
907                 pcarbon(np)=pcm(np)*( 1 -                 pcarbon(np)=pcm(np)*( 1 -
908       &          exp((-alpha_I(np)*chl2c(np))/(pcm(np))) )       &          exp((-alpha_I(np)*chl2c(np))/(pcm(np))) )
 c for inhibition  
                if (inhibcoef_geid(np).gt.0. _d 0) then  
909  #ifdef WAVEBANDS  #ifdef WAVEBANDS
910                   Ek = pcm(np)/(chl2c(np)*alpha_mean(np))                 Ek(np) = pcm(np)/(chl2c(np)*alpha_mean(np))
911                   EkoverE(np) = Ek(np) / PARlocal
912                   do nl=1, tlam
913                      Ek_nl(np,nl)=pcm(np)/(chl2c(np)*alphachl_nl(np,nl))
914                      EkoverE_nl(np,nl) = Ek_nl(np,nl) / PARwlocal(nl)
915                   enddo
916  #else  #else
917                   Ek = pcm(np)/(chl2c(np)*alphachl(np))                 Ek(np) = pcm(np)/(chl2c(np)*alphachl(np))
918                   EkoverE(np) = Ek(np) / PARlocal
919  #endif  #endif
920                   EkoverE = Ek / PARlocal  c for inhibition
921                   if (PARlocal .ge. Ek) then !photoinhibition begins                 if (inhibcoef_geid(np).gt.0. _d 0) then
922                    pcarbon(np) = pcarbon(np)*(EkoverE*inhibcoef_geid(np))                   if (PARlocal .ge. Ek(np)) then !photoinhibition begins
923                      pcarbon(np) = pcarbon(np)*
924         &                            (EkoverE(np)*inhibcoef_geid(np))
925                   endif                   endif
926                 endif                 endif
927  c end inhib  c end inhib
# Line 899  c end inhib Line 937  c end inhib
937                 pcarbon(np)=0. _d 0                 pcarbon(np)=0. _d 0
938               endif               endif
939             else ! if pcm 0             else ! if pcm 0
940               pcm(np)=0.d0               pcm(np)=0. _d 0
941  #ifndef DYNAMIC_CHL  #ifndef DYNAMIC_CHL
942               chl2c(np)=chl2cmin(np)               chl2c(np)=chl2cmin(np)
943  #endif  #endif
944               pcarbon(np)=0.d0               pcarbon(np)=0. _d 0
945               ilimit(np)=0.d0               ilimit(np)=0. _d 0
946             endif             endif
947  #ifdef DYNAMIC_CHL  #ifdef DYNAMIC_CHL
948  c Chl:C acclimated to current conditions  c Chl:C acclimated to current conditions
# Line 930  c         acclim(np)=max(acclim(np),chl2 Line 968  c         acclim(np)=max(acclim(np),chl2
968  c diagnostic version of the above that does not feed back to growth  c diagnostic version of the above that does not feed back to growth
969            ChlGeiderlocal = 0. _d 0            ChlGeiderlocal = 0. _d 0
970            do np = 1, npmax            do np = 1, npmax
971             tmppcm = mu(np)*limit(np)*phytoTempFunction(np)             tmppcm = mu(np)*limit(np)*phytoTempFunction(np)*
972         &                                       pCO2limit(np)
973             if (tmppcm.gt.0.d0) then             if (tmppcm.gt.0.d0) then
974               tmpchl2c = Geider_chl2cmax(np)/               tmpchl2c = Geider_chl2cmax(np)/
975       &         (1+(Geider_chl2cmax(np)*Geider_alphachl(np)*PARdaylocal)/       &         (1+(Geider_chl2cmax(np)*Geider_alphachl(np)*PARdaylocal)/
# Line 1001  c sum all palatability*phyto and find ph Line 1040  c sum all palatability*phyto and find ph
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))/
# Line 1041  c sum over phy for impact on zoo, and al Line 1080  c sum over phy for impact on zoo, and al
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)+
# Line 1072  c sum over phy for impact on zoo, and al Line 1144  c sum over phy for impact on zoo, and al
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
# Line 1198  c accumulate particulate and dissolved d Line 1271  c accumulate particulate and dissolved d
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    
# Line 1290  c consumption - sum of phytoplankton con Line 1363  c consumption - sum of phytoplankton con
1363  c phospate uptake by each phytoplankton  c phospate uptake by each phytoplankton
1364  #ifndef GEIDER  #ifndef GEIDER
1365                 grow(np)=ngrow(np)*mu(np)*limit(np)*ilimit(np)*                 grow(np)=ngrow(np)*mu(np)*limit(np)*ilimit(np)*
1366       &                            phytoTempFunction(np)       &                            phytoTempFunction(np)*pCO2limit(np)
1367  #endif  #endif
1368  #ifdef GEIDER  #ifdef GEIDER
1369                 grow(np)=ngrow(np)*pcarbon(np)                 grow(np)=ngrow(np)*pcarbon(np)
# Line 1298  c phospate uptake by each phytoplankton Line 1371  c phospate uptake by each phytoplankton
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
# Line 1439  c degradation of  CDOM - high when bleac Line 1513  c degradation of  CDOM - high when bleac
1513  #endif  #endif
1514  #endif  #endif
1515    
1516    #ifdef ALLOW_DENIT
1517               if (O2local.lt.O2crit) then
1518                  if (NO3local.lt.no3crit) then
1519    c no remineralization for N, P, Fe (not Si?)
1520                   DOPremin = 0. _d 0
1521                   DONremin = 0. _d 0
1522                   DOFeremin = 0. _d 0
1523                   preminP  = 0. _d 0
1524                   preminN  = 0. _d 0
1525                   preminFe =  0. _d 0
1526    #ifdef ALLOW_CDOM
1527                   preminP_cdom =  0. _d 0
1528                   preminN_cdom =  0. _d 0
1529                   preminFe_cdom =  0. _d 0
1530    #endif
1531    #ifdef ALLOW_CARBON
1532                  DOCremin = 0. _d 0
1533                  preminC  = 0. _d 0
1534    #ifdef ALLOW_CDOM
1535                  preminC_cdom =  0. _d 0
1536    #endif
1537    #endif
1538    
1539    #ifdef ALLOW_CDOM
1540    c degradation of  CDOM - high when bleached by light
1541               cdomp_degrd = reminTempFunction * cdomlocal
1542         &            *(cdombleach*min(PARlocal/PARcdom,1. _d 0) )
1543               cdomn_degrd = rnp_cdom * cdomp_degrd
1544               cdomfe_degrd= rfep_cdom * cdomp_degrd
1545    #ifdef ALLOW_CARBON
1546               cdomc_degrd = rcp_cdom  * cdomp_degrd
1547    #endif
1548    #endif
1549                  endif
1550               endif
1551    #endif
1552    c end denit caveats
1553    
1554  c chemistry  c chemistry
1555  c NH4 -> NO2 -> NO3 by bacterial action  c NH4 -> NO2 -> NO3 by bacterial action
1556              NO2prod = knita*( 1. _d 0-min(PARlocal/PAR0,1. _d 0) )              NO2prod = knita*( 1. _d 0-min(PARlocal/PAR0,1. _d 0) )
# Line 1506  c%%% Line 1618  c%%%
1618  #ifdef DAR_DIAG_RSTAR  #ifdef DAR_DIAG_RSTAR
1619  #ifndef GEIDER  #ifndef GEIDER
1620                tmpgrow=ngrow(np)*mu(np)*ilimit(np)*                tmpgrow=ngrow(np)*mu(np)*ilimit(np)*
1621       &              phytoTempFunction(np)       &              phytoTempFunction(np)*pCO2limit(np)
1622  #endif  #endif
1623  #ifdef GEIDER  #ifdef GEIDER
1624                tmpgrow=grow(np)/limit(np)                tmpgrow=grow(np)/limit(np)
# Line 1577  C zooplankton stoichiometry varies accor Line 1689  C zooplankton stoichiometry varies accor
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    
# Line 1618  c-ONLYNO3   dNO3dt =  - consumpNO3 +  pr Line 1730  c-ONLYNO3   dNO3dt =  - consumpNO3 +  pr
1730  #else  #else
1731       &                *(preminP  + DOPremin)       &                *(preminP  + DOPremin)
1732  #endif  #endif
1733                dNO3dt = dNO3dt - denit                dNO3dt = dNO3dt - (denit_no3/denit_np)*denit
1734                dNH4dt = dNH4dt -                  dNH4dt = dNH4dt -  
1735  #ifdef ALLOW_CDOM  #ifdef ALLOW_CDOM
1736       &                 (DONremin)       &                 (DONremin)
# Line 1707  c loss of O2 by remineralization Line 1819  c loss of O2 by remineralization
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
# Line 1715  c loss of O2 by remineralization Line 1827  c loss of O2 by remineralization
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

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.15

  ViewVC Help
Powered by ViewVC 1.1.22