/[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.9 by stephd, Thu Jul 26 18:01:22 2012 UTC revision 1.12 by stephd, Thu Mar 28 17:00:34 2013 UTC
# Line 75  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 84  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 204  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 228  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 315  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 455  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 516  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 890  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 915  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 1018  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 1215  c accumulate particulate and dissolved d Line 1237  c accumulate particulate and dissolved d
1237       &                     ExportFracZ(nz)*( mortzoo(nz)*       &                     ExportFracZ(nz)*( mortzoo(nz)*
1238       &                     mortZTempFunction*zooN(nz)       &                     mortZTempFunction*zooN(nz)
1239       &                     +  mortzoo2(nz)*       &                     +  mortzoo2(nz)*
1240       &                     mortZ2TempFunction*zooN(nz)**2 )       &                     mortZ2TempFunction*zooN(nz)*zooP(nz) )
1241                 totzoo_don=totzoo_don+                 totzoo_don=totzoo_don+
1242       &                    (1. _d 0-ExportFracZ(nz))*(       &                    (1. _d 0-ExportFracZ(nz))*(
1243       &                     mortzoo(nz)*       &                     mortzoo(nz)*
1244       &                     mortZTempFunction*zooN(nz)+       &                     mortZTempFunction*zooN(nz)+
1245       &                     mortzoo2(nz)*       &                     mortzoo2(nz)*
1246       &                     mortZ2TempFunction*zooN(nz)**2 )       &                     mortZ2TempFunction*zooN(nz)*zooP(nz) )
1247                 totzoo_pofe=totzoo_pofe+                 totzoo_pofe=totzoo_pofe+
1248       &                     ExportFracZ(nz)*( mortzoo(nz)*       &                     ExportFracZ(nz)*( mortzoo(nz)*
1249       &                     mortZTempFunction*zooFe(nz)       &                     mortZTempFunction*zooFe(nz)
1250       &                     +  mortzoo2(nz)*       &                     +  mortzoo2(nz)*
1251       &                     mortZ2TempFunction*zooFe(nz)**2 )       &                     mortZ2TempFunction*zooFe(nz)*zooP(nz) )
1252                 totzoo_dofe=totzoo_dofe+                 totzoo_dofe=totzoo_dofe+
1253       &                   (1. _d 0-ExportFracZ(nz))*(       &                   (1. _d 0-ExportFracZ(nz))*(
1254       &                    mortzoo(nz)*       &                    mortzoo(nz)*
1255       &                    mortZTempFunction*zooFe(nz) +       &                    mortZTempFunction*zooFe(nz) +
1256       &                    mortzoo2(nz)*       &                    mortzoo2(nz)*
1257       &                    mortZ2TempFunction*zooFe(nz)**2 )       &                    mortZ2TempFunction*zooFe(nz)*zooP(nz) )
1258                 totzoo_posi=totzoo_posi+                 totzoo_posi=totzoo_posi+
1259       &                     ( mortzoo(nz)*       &                     ( mortzoo(nz)*
1260       &                       mortZTempFunction*zooSi(nz)+       &                       mortZTempFunction*zooSi(nz)+
1261       &                       mortzoo2(nz)*       &                       mortzoo2(nz)*
1262       &                       mortZ2TempFunction*zooSi(nz)**2 )       &                       mortZ2TempFunction*zooSi(nz)*zooP(nz) )
1263  #ifdef ALLOW_CARBON  #ifdef ALLOW_CARBON
1264                 totzoo_poc=totzoo_poc+                 totzoo_poc=totzoo_poc+
1265       &                    ExportFracZ(nz)*( mortzoo(nz)*       &                    ExportFracZ(nz)*( mortzoo(nz)*
1266       &                         mortZTempFunction*zooClocal(nz)       &                         mortZTempFunction*zooClocal(nz)
1267       &                      +  mortzoo2(nz)*       &                      +  mortzoo2(nz)*
1268       &                         mortZ2TempFunction*zooClocal(nz)**2 )       &                       mortZ2TempFunction*zooClocal(nz)*zooP(nz) )
1269                 totzoo_doc=totzoo_doc+                 totzoo_doc=totzoo_doc+
1270       &           (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)*       &           (1. _d 0-ExportFracZ(nz))*( mortzoo(nz)*
1271       &                         mortZTempFunction*zooClocal(nz)       &                         mortZTempFunction*zooClocal(nz)
1272       &                      +  mortzoo2(nz)*       &                      +  mortzoo2(nz)*
1273       &                         mortZ2TempFunction*zooClocal(nz)**2 )       &                       mortZ2TempFunction*zooClocal(nz)*zooP(nz) )
1274  #endif  #endif
1275              enddo              enddo
1276    
# Line 1632  C zooplankton stoichiometry varies accor Line 1654  C zooplankton stoichiometry varies accor
1654       &                           - mortzoo(nz)*       &                           - mortzoo(nz)*
1655       &                             mortZTempFunction*zooN(nz)       &                             mortZTempFunction*zooN(nz)
1656       &                           - mortzoo2(nz)*       &                           - mortzoo2(nz)*
1657       &                             mortZ2TempFunction*zooN(nz)**2       &                             mortZ2TempFunction*zooN(nz)*zooP(nz)
1658                dzooFedt(nz) = dzooFedt(nz)                dzooFedt(nz) = dzooFedt(nz)
1659       &                           - mortzoo(nz)*       &                           - mortzoo(nz)*
1660       &                             mortZTempFunction*zooFe(nz)       &                             mortZTempFunction*zooFe(nz)
1661       &                           - mortzoo2(nz)*       &                           - mortzoo2(nz)*
1662       &                             mortZ2TempFunction*zooFe(nz)**2       &                             mortZ2TempFunction*zooFe(nz)*zooP(nz)
1663                dzooSidt(nz) = dzooSidt(nz)                dzooSidt(nz) = dzooSidt(nz)
1664       &                           - mortzoo(nz)*       &                           - mortzoo(nz)*
1665       &                             mortZTempFunction*zooSi(nz)       &                             mortZTempFunction*zooSi(nz)
1666       &                           - mortzoo2(nz)*       &                           - mortzoo2(nz)*
1667       &                             mortZ2TempFunction*zooSi(nz)**2       &                             mortZ2TempFunction*zooSi(nz)*zooP(nz)
1668              enddo              enddo
1669    
1670    
# Line 1762  c loss of O2 by remineralization Line 1784  c loss of O2 by remineralization
1784       &                           - mortzoo(nz)*       &                           - mortzoo(nz)*
1785       &                             mortZTempFunction*zooClocal(nz)       &                             mortZTempFunction*zooClocal(nz)
1786       &                           - mortzoo2(nz)*       &                           - mortzoo2(nz)*
1787       &                             mortZ2TempFunction*zooClocal(nz)**2       &                         mortZ2TempFunction*zooClocal(nz)*zooP(nz)
1788              enddo              enddo
1789  #else  #else
1790              do nz=1,nzmax              do nz=1,nzmax
# Line 1770  c loss of O2 by remineralization Line 1792  c loss of O2 by remineralization
1792       &                           - mortzoo(nz)*       &                           - mortzoo(nz)*
1793       &                             mortZTempFunction*zooClocal(nz)       &                             mortZTempFunction*zooClocal(nz)
1794       &                           - mortzoo2(nz)*       &                           - mortzoo2(nz)*
1795       &                             mortZ2TempFunction*zooClocal(nz)**2       &                         mortZ2TempFunction*zooClocal(nz)*zooP(nz)
1796              enddo              enddo
1797  #endif  #endif
1798    

Legend:
Removed from v.1.9  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22