! source file: /gxfs_work1/geomar/smomw113/UVic_ESCM/2.9_dk_0814/updates/11_valley/source/common/npzd.h !====================== include file "npzd.h" ========================= ! variables for npzd model ! ntnpzd = number of npzd tracers ! nbio = number of npzd timesteps per ocean timestep ! trcmin = minimum tracer for flux calculations ! alpha = initial slope P-I curve [(W/m^2)^(-1)/day] ! kw = light attenuation due to water [1/m] ! kc = light attenuation by phytoplankton [1/(m*mmol m-3)] ! ki = light attenuation through sea ice & snow ! abio = maximum growth rate parameter [1/day] ! bbio = b ! cbio = [1/deg_C] ! k1n = half saturation constant for N uptake [mmol m-3] ! nup = specific mortality rate (Phytoplankton) [day-1] ! gamma1 = assimilation efficiency (zpk) ! gbio = maximum grazing rate at 0 deg C [day-1] ! nuz = quadratic mortality (zpk) ! nud0 = remineralization rate [day-1] cwk LFe = Iron limitation (appears outdated since merge 0814) ! wd = sinking speed of detritus [m day-1] ! ztt = depth to top of grid cell [cm] ! rkwz = reciprical of light attenuation times grid depth ! par = fraction of photosythetically active radiation ! dtnpzd = time step of biology ! capr = carbonate to carbon production ratio ! dcaco3 = remineralisation depth of calcite [cm] ! rcak = array used in calculating calcite remineralization ! rcab = array used in calculating bottom calcite remineralization ! nupt0 = specific mortality rate (Phytoplankton) [1/day] ! wd0 = sinking speed of detritus at surface [m/day] ! wdi the dependency on depth (used in Ben's code, not identical to my wdb by its units) ! k1p = half saturation constant for P uptake ! jdiar = factor reducing the growth rate of diazotrophs ! redctn = C/N Redfield ratio (includes mol to mmol conversion) ! redctp = C/P Redfield ratio (includes mol to mmol conversion) ! redptn = P/N Redfield ratio ! redntp = N/P Redfield ratio ! redotn = O/N Redfield ratio (includes mol to mmol conversion) ! redotp = O/P Redfield ratio (includes mol to mmol conversion) ! redotc = O/C Redfield ratio (units: mol per mol) ! rnbio = reciprical of nbio ! rdtts = reciprical of dtts [s-1] ! dtbio = npzd time step [s] ! rnpp = rate of net primary production [nmol cm-3 s-1] ! rgraz = rate of grazing [nmol cm-3 s-1] ! rmorp = rate of mortality of phytoplankton [nmol cm-3 s-1] ! rmorz = rate of mortality of zooplankton [nmol cm-3 s-1] ! rremi = rate of remineralization [nmol cm-3 s-1] ! rexcr = rate of excretion [nmol cm-3 s-1] ! rexpo = rate of export through the bottom [nmol cm-3 s-1] ! rnpp_D = npp for diazotraphs [nmol cm-3 s-1] ! rgraz_D = rgraz for diazotraphs [nmol cm-3 s-1] ! rmorp_D = rmorp for diazotraphs [nmol cm-3 s-1] ! rnfix = rate of nitrogen fixation [nmol cm-3 s-1] ! rdeni = rate of denitrification [nmol cm-3 s-1] ! kzoo = half saturation constant for Z grazing ! zprefP = Z preference for grazing on P ! zprefD = Z preference for grazing on Diaz ! zprefZ = Z preference for grazing on other Z ! zprefDet = Z preference for grazing on Detritus ! rgraz_Det = rate of grazing on Detritus [nmol cm-3 s-1] ! rgraz_Z = rate of grazing on other Zooplankton [nmol cm-3 s-1] ! geZ = growth efficiency of zooplankton !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! New diagnostic output ! ravej = light-dependant growth rate of P ! ravej_D = light-dependant growth rate of Diaz ! rgmax = temp-dependant growth rate of zoo ! rno3P = nitrate-dependant growth rate of P ! rpo4P = phosphate-dependant growth rate of P ! rpo4_D = phosphate-dependant growth rate of D ! ! ! +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! For ocean pipes (defined 1) ! kpipe = ocean pipe coordinate ! kpipe_fe = ocean pipe coordinate for fe limitation ! delpCO2_soft = diagnostic of potential impact of pumping preformed nutrients on local pCO2surf ! delpCO2_solu = diagnostic of potential impact of pumping preformed DIC and ALK on local pCO3surf ! delpCO2_kpipe = diagnostic of overall expected delpCO2 ! pipeactive = if there is a pipe active for _ocean_upwelling_pipes or _excessC, see tracer.F ! kpipemin = minimum k-level for pipes ! kpipemax = maximum k-level for pipes ! pipespeed = speed of pipe ! redctnefac = enhancement factor of redctn (1.0 or larger) ! pipeoligo = oligotrophy condition used in the pipe algo (default is 0.4), to be read from namelist cwk cwk/ !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! Dynamic iron cycle ! kfeleq = Fe-ligand stability constant [m^3/(mmol ligand)] ! lig = Ligand concentration [mmol/m^3] ! thetamaxhi = Maximum Chl:C ratio, abundant iron [gChl/(gC)] ! thetamaxlo = Maximum Chl:C ratio, extreme iron limitation [gChl/(gC)] ! alphamax = Maximum initial slope in PI-curve [day^-1 (W/m^2)^-1 (gChl/(gC))^-1] ! alphamin = Minimum intital slope in PI-curve [day^-1 (W/m^2)^-1 (gChl/(gC))^-1] ! mc = Molar mass of carbon [g/mol] ! fetopsed = Fe:P ratio for sedimentary iron source [molFe/molP] ! o2min = Minimum O2 concentration for aerobic respiration [mmolO_2/m^3] ! kfeorg = Organic-matter dependent scavenging rate [(m^3/(gC s))^0.58] ! kfecol = Colloidal Fe production rate (inorganic scavenging) [s^-1] ! kfeorg_ps = Organic-matter dependent scavenging power lay scale parameter default 0.58 ! rexpofe = rate of iron export through the bottom; [nmol cm-3 s-1] <- is this unit correct (wk, 28.03.22) ! rremife = rate of iron remineralization; [nmol cm-3 s-1] <- is this unit correct (wk, 28.03.22) ! rchl = ! rchl_D = ! fehydro = hydrothermal flux of iron [mol/m^3*s^-1] ! rfehydro = !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ! O_npzd_h2s ! ch2s_no3 = rate constant for H2S oxydation with nitrate [d-1] ! ch2s_o2 = rate constant for H2S oxydation with oxygen [d-1] ! endof ! #if defined O_oceanmask ! oceanmask = a generic ocean mask #endif ! aour = aou restoring rate (units to be updated) integer ntnpzd, nbio parameter (ntnpzd=8) common /npzd_i/ nbio(km) real trcmin parameter (trcmin=5e-12) real alpha, kw, kc, ki, abio, bbio, cbio, k1n, nup, gamma1, gbio real nuz, nud0, wd, ztt, rkwz, par, dtnpzd real capr, dcaco3, rcak, rcab, nupt0, wd0, k1p, jdiar, redctn real redctp, redptn, redntp, redotn, redotp, rnbio, rdtts, dtbio real rnpp, rgraz, rmorp, rmorpt, rmorz, rremi, rexcr, rexpo real rnpp_D, rgraz_D, rmorp_D, rnfix, rdeni, kzoo, zprefP real zprefD, zprefZ, zprefDet, rgraz_Det, rgraz_Z, geZ, kfe real ravej, ravej_D, rgmax, rno3P, rpo4P, rpo4_D, kfe_D real wdi real redotc cwk likely outdated: real LFe, gamma2, epsbio ! 1 integer kpipe, kpipe_fe real delpCO2_soft,delpCO2_solu,delpCO2_kpipe ! 1 integer pipeactive cwk 8.02.20 real kpipemin, kpipemax real pipespeed cwk 16.03.22 real redctnefac cwk 11.10.22 real pipeoligo ! 1 real kfemax, kfemin, pmax real kfeleq, kfecol, alphamax, alphamin &, thetamaxhi, thetamaxlo, mc, kfeorg, lig, rfecol &, fetopsed, o2min, rfeton ! endof 1 real rfeorgads, rdeffe, rremife, rexpofe, rfeprime real rfesed, rbfe real kfeorg_ps real rchl, rchl_D real fehydro, rfehydro real fe_hydr ! O_npzd_h2s real ch2s_no3, ch2s_o2 ! endof #if defined O_oceanmask real oceanmask #endif common /npzd_r/ alpha, kw, kc, ki, abio, bbio, cbio, k1n, nup common /npzd_r/ gamma1, gbio, nuz, nud0 common /npzd_r/ wd(km), ztt(km), rkwz(km), par, dtnpzd, capr common /npzd_r/ dcaco3, rcak(km), rcab(km), nupt0, wd0, k1p common /npzd_r/ jdiar, redctn, redctp, redptn, redntp, redotn common /npzd_r/ redotp, rnbio(km), rdtts(km), dtbio(km), geZ common /npzd_r/ kzoo, zprefP, zprefD, zprefZ, zprefDet, kfe, kfe_D common /npzd_r/ redotc cwk likely outdated: common /npzd_r/ LFe, gamma2, epsbio common /npzd_r/ kfeleq, alphamax, alphamin common /npzd_r/ thetamaxhi, thetamaxlo, lig, fetopsed, o2min common /npzd_r/ mc, kfeorg, rfeton, kfecol &, kfeorg_ps , wdi common /npzd_r/ kfemax, kfemin, pmax #if defined O_oceanmask common /omask/ oceanmask(imt,jmt,19) #endif common /npzd_r/ rnpp(imt,kpzd,jsmw:jemw) common /npzd_r/ rgraz(imt,kpzd,jsmw:jemw) common /npzd_r/ rmorp(imt,kpzd,jsmw:jemw) common /npzd_r/ rmorpt(imt,kpzd,jsmw:jemw) common /npzd_r/ rmorz(imt,kpzd,jsmw:jemw) common /npzd_r/ rexcr(imt,kpzd,jsmw:jemw) common /npzd_r/ rremi(imt,km,jsmw:jemw) common /npzd_r/ rexpo(imt,km,jsmw:jemw) common /npzd_r/ rgraz_Det(imt,kpzd,jsmw:jemw) common /npzd_r/ rgraz_Z(imt,kpzd,jsmw:jemw) common /npzd_r/ rnpp_D(imt,kpzd,jsmw:jemw) common /npzd_r/ rgraz_D(imt,kpzd,jsmw:jemw) common /npzd_r/ rmorp_D(imt,kpzd,jsmw:jemw) common /npzd_r/ rnfix(imt,kpzd,jsmw:jemw) common /npzd_r/ rdeni(imt,km,jsmw:jemw) common /npzd_r/ rremife(imt,km,jsmw:jemw) common /npzd_r/ rexpofe(imt,km,jsmw:jemw) cwk 25.03.22 note the non-conventional formats (km as last dimenson), cwk which Ben used here partly! common /npzd_r/ fehydro(imt,jmt,km) common /npzd_r/ rfehydro(imt,km,jsmw:jemw) common /npzd_r/ fe_hydr(imt,jmt,km) common /npzd_r/ rchl(imt,km,jsmw:jemw) common /npzd_r/ rchl_D(imt,km,jsmw:jemw) cwk Note that declaring (above) and communicating the variables (here) is ! not done fully consistently. common /npzd_r/ kpipe(imt,jmt) cwk 1.04.22 (freed common redctnefac from excessC) common /npzd_r/ redctnefac cwk 11.10.22 common /npzd_r/ pipeoligo common /npzd_r/ kpipe_fe(imt,jmt) ! cwk I changed the logic a little compared to the be code common /npzd_r/ pipeactive(imt,jmt) cwk 8.02.21 common /npzd_r/ kpipemin,kpipemax,pipespeed cwk next ppl endif is of _ocean_upwelling_pipes ! O_npzd_h2s wg namelist vars common /npzd_r/ ch2s_no3, ch2s_o2 ! endof cwk next ppl endif is of _npzd (line 310)