#include /*--------------------------------------------------------------------------*/ double opp_chlCarbon2( double aph, double bbp, double irr, double k490, double mld, double daylength) { /* !Description: opp_chlCarbon - computes daily primary productivity using a chl:Carbon ratio. The ChlCarbon algorithm estimates productivity using aph (m-1), bbp (m-1), surface irradiance (Einsteins m-2 d-1), k490 (m-1), mld (m), and day length (hours). growth rate (u) = u(max) * f(nut,T) * f(Ig) where: u(max) = 2 f(nut,T) = (Chl/C)sat / (Chl/C)max where: (Chl/C)sat = SeaWiFS Chl:C = converted ratio of aph/bbp (Chl/C)max = 0.022 + (0.045-0.022) * exp (-3 * Ig) where: Ig = median mixed layer light level = surface irradiance * exp (-k490 * MLD/2) f(Ig) = 1 - exp (-3 * Ig) !Input Parameters: aph algal specific absorption bbp backscatter irr Photosynthetically available radiation in Einsteins per day per square meter k490 absorbence at 490nm mld mixing layer depth in meters dayL Length day in decimal hours. !Output Parameters: Primary productivity in milligrams Carbon per square meter per day !Revision History: June-16-2005 first version (Robert O'Malley) After program opp_chlCarbon.c and opp_befa.c replace the z_eu calc in opp_chlCarbon.c with the method used in opp_befa.c !References and Credits Behrenfeld,M.J; Boss,E.; Siegel,D.A.; Shea,D.M.; 2005. Carbon-based Ocean Productivity and Phytoplankton Physiology from Space. Global Biogeochemical Cycles, Volume 19 */ double uMax; /* max growth rate */ double u; /* growth rate */ double chlCarbonMax; /* max chl:carbon ratio */ double nutTempFunc; /* f(nut,T) */ double chlCarbonSat; /* satellite chl:carbon ratio */ double chl; /* satellite chl */ double carbon; /* bbp converted to carbon */ double Ig; /* median mixed layer light level */ double IgFunc; /* f(Ig) */ double irrFunc; /* irradiance function describing water column */ double z_eu; /* euphotic depth at 1% light level */ double npp; double chl_tot; if(irr <= 0.0) return 0.0; uMax = 2.0; Ig = irr / daylength * exp(-k490 * mld / 2.0); IgFunc = 1 - exp(-3.0 * Ig); chl = aph / 0.05582; if(bbp < 0.00035) bbp = 0.00036; carbon = 13000.0 * (bbp - 0.00035); chlCarbonSat = chl / carbon; chlCarbonMax = 0.022 + (0.045-0.022) * exp(-3.0 * Ig); nutTempFunc = chlCarbonSat / chlCarbonMax; /* irr function */ irrFunc = 0.66125L * irr / ( irr + 4.1L ); u = uMax * nutTempFunc * IgFunc; /* Calculate euphotic depth (z_eu) with Morel's Case I model. */ /* Calculate chl_tot from Satellite Surface Chlorophyll Data. */ if (chl < 1.0L) chl_tot = 38.0L * pow( chl, 0.425 ); else chl_tot = 40.2L * pow( chl, 0.507 ); z_eu = 200.0L * pow( chl_tot, (-.293) ); if (z_eu <= 102.0L) z_eu = 568.2L * pow( chl_tot, (-.746) ); // z_eu = -log(0.01) / k490; npp = carbon * u * irrFunc * z_eu; return npp; }