OB.DAAC Logo
NASA Logo
Ocean Color Science Software

ocssw V2022
get_npp.c File Reference
#include <stdlib.h>
#include <math.h>
#include "l12_proto.h"
#include "get_npp.h"
Include dependency graph for get_npp.c:

Go to the source code of this file.

Functions

double betasw_ZHH2009 (double, double, double)
 
float opp_cafe (float PAR, float chl, float mld, float lat, int yd, float aph_443, float adg_443, float bbp_443, float bbp_s, float sst)
 
void get_npp (l2str *l2rec, int prodnum, float prod[])
 
void get_par_clim (float *parin, float *lat, float *lon, int nlat, int nlon, float *latp, float *lonp, int32_t npix, float *par)
 
float npp_vgpm (float chl, float irr, float sst, float dayL)
 
float npp_eppley (float chl, float irr, float sst, float dayL)
 
double npp_cbpm2 (double chl, double bbp, double irr, double k490, double mld, double zno3, double daylength)
 
double austinPetzold_1986 (double lambda, double K490)
 

Function Documentation

◆ austinPetzold_1986()

double austinPetzold_1986 ( double  lambda,
double  K490 
)

Definition at line 925 of file get_npp.c.

◆ betasw_ZHH2009()

double betasw_ZHH2009 ( double  lambda,
double  S,
double  Tc 
)

Definition at line 1580 of file get_npp.c.

◆ get_npp()

void get_npp ( l2str *  l2rec,
int  prodnum,
float  prod[] 
)

Calculate the Primary Productivity using 1 of 3 algorithms 1) Behrenfeld-Falkowski: (BeFa) 2) Behrenfeld-Falkowski algorithm, but modifies the pb_opt function after Eppley (as implemented by Antoine and Morel): (Eppley) 3) Primary Productivity using a chl:Carbon ratio. This is a spectrally resolved version of the cbpm, using nine separate wavelengths: (Updated CbPM)

Adapted from Oregon State U. http://www.science.oregonstate.edu/ocean.productivity/

by R. Healy at NASA January 2015

Definition at line 35 of file get_npp.c.

◆ get_par_clim()

void get_par_clim ( float *  parin,
float *  lat,
float *  lon,
int  nlat,
int  nlon,
float *  latp,
float *  lonp,
int32_t  npix,
float *  par 
)

Definition at line 336 of file get_npp.c.

◆ npp_cbpm2()

double npp_cbpm2 ( double  chl,
double  bbp,
double  irr,
double  k490,
double  mld,
double  zno3,
double  daylength 
)

!Description: opp_cbpm2 - computes daily primary productivity using a chl:Carbon ratio. This is a spectrally resolved version of the cbpm, using nine separate wavelengths. It is also depth resolved, integrating the effects from the surface down to a fixed depth of 200 m.

The cbpm2 algorithm estimates productivity using chl (m-1), bbp (m-1), surface irradiance (Einsteins m-2 d-1), k490 (m-1), mld (m), zno3 (m) and day length (hours).

Net primary productivity is carbon * growth rate, where carbon is proportional to particulate backscatter

carbon = 13000 * (bbp - 0.00035)

and growth rate is a function of nutrient and temperature stress (f(nut,T) and photoacclimation (f(Ig))

growth rate (u) = umax * f(nut,T) * f(Ig)

where:

umax = 2

f(nut,T) = ((Chl/C)sat - y0) / ((Chl/C)max - y0)

f(Ig) = 1 - exp (-5 * Ig)

and:

(Chl/C)sat = ratio of satellite observed chl and carbon (carbon from bbp)

(Chl/C)max = 0.022 + (0.045-0.022) * exp (-3 * Ig)

Ig = median mixed layer light level
   = surface irradiance * exp (-k(lambda) * MLD/2)

The above items are analyzed for nine separate wavelengths, and is vertically resolved to a depth of 200 m.

For more details, please see the paper by Westberry, et al (2008)

!Input Parameters:

Parameters
[in]chlchlorophyll concentration
[in]bbpbackscatter
[in]irrPhotosynthetically available radiation in Einsteins per day per square meter
[in]k490absorbence at 490nm
[in]mldmixing layer depth in meters
[in]zno3depth of the nitrocline
[in]daylengthlength of the day in decimal hours.

!Output Parameters:

Parameters
[out]Primaryproductivity in milligrams Carbon per square meter per day

!Dependencies: function austinPetzold_1986 ( float lambda, float K490 )

given a reference k490 vlaue, determine k(lambda) for a specified lambda

ref: Austin, R. W., and T. J. Petzold (1986), Spectral dependence of the diffuse attenuation coefficient of light in ocean waters, Opt. Eng., 25, 473 – 479

!Revision History:

08-16-2010 first release version (Robert O'Malley) [original code written in matlab by T. Westberry]

01-05-2011 O'Malley add uMax trap on mu[m] correct z_eu determination

!References and Credits

Westberry, T. Behrenfeld, M.J., Siegel, D.A., and Boss, E.; 2008. Carbon-based primary productivity modeling with vertically resolved photoacclimation. Global Biogeochemical Cycles, Vol. 22, GB2024, doi:10.1029/2007GB003078

Definition at line 662 of file get_npp.c.

◆ npp_eppley()

float npp_eppley ( float  chl,
float  irr,
float  sst,
float  dayL 
)

Definition at line 530 of file get_npp.c.

◆ npp_vgpm()

float npp_vgpm ( float  chl,
float  irr,
float  sst,
float  dayL 
)

!C-----------------------------------------------------------------------—*\

!Description: opp_befa - computes daily primary productivity using the Behrenfeld-Falkowski (BeFa) algorithm. The BeFa algorithm estimates productivity using surface chl (mg m-3), surface irradiance (Einsteins m-2 d-1), sea surface temperature (C). Pb_opt is modelled as a polynomial function of SST.

!Input Parameters:

Parameters
[in]chlChlorophyll_a surface concentration in milligrams chlorophyl per cubic meter
[in]irrPhotosynthetically available radiation in Einsteins per day per square meter
[in]sstSea surface temperature in degrees Centigrade
[in]dayLLength day in decimal hours.

!Output Parameters:

Parameters
[out]Primaryproductivity in milligrams Carbon per square meter per hour

!Revision History:

First programmed up by Monica Chen at Rutgers (1996)

Revised by K. Turpie at NASA (August 1997)

Maintained by Don Shea at NASA

Now maintained by Robert O'Malley at Oregon State University (April, 2005 - present)

Modified for inclusion in l2gen for OBPG by R. Healy at NASA (January 2015)

!References and Credits

Behrenfeld,M.J; Falkowski,P.G.; 1997. Photosynthetic Rates Derived from Satellite-Based Chlorophyll Concentration. Limnology and Oceanography, Volume 42, Number 1

!END---------------------------------------------------------------------—*\

Definition at line 420 of file get_npp.c.

◆ opp_cafe()

float opp_cafe ( float  PAR,
float  chl,
float  mld,
float  lat,
int  yd,
float  aph_443,
float  adg_443,
float  bbp_443,
float  bbp_s,
float  sst 
)

Definition at line 1002 of file get_npp.c.