MODULE trclsm_pisces !!====================================================================== !! *** MODULE trclsm_lobster *** !! TOP : initialisation of some run parameters for PISCES bio-model !!====================================================================== !! History : - ! 1999-10 (M.A. Foujols, M. Levy) original code !! - ! 2000-01 (L. Bopp) hamocc3, p3zd !! 1.0 ! 2003-08 (C. Ethe) module F90 !! 2.0 ! 2007-12 (C. Ethe, G. Madec) from trclsm.pisces.h90 !!---------------------------------------------------------------------- #if defined key_pisces !!---------------------------------------------------------------------- !! 'key_pisces' : PISCES bio-model !!---------------------------------------------------------------------- !! trc_lsm_pisces : PISCES model namelist read !!---------------------------------------------------------------------- USE oce_trc ! Ocean variables USE par_trc ! TOP parameters USE trc ! TOP variables USE sms ! sms trends IMPLICIT NONE PRIVATE PUBLIC trc_lsm_pisces ! called by trclsm.F90 module !!---------------------------------------------------------------------- !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007) !! $Id$ !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_lsm_pisces !!---------------------------------------------------------------------- !! *** trc_lsm_pisces *** !! !! ** Purpose : read PISCES namelist !! !! ** input : file 'namelist.trc.sms' containing the following !! namelist: natext, natbio, natsms !! natkriest ("key_kriest") !!---------------------------------------------------------------------- CHARACTER (len=32) :: clname !! NAMELIST/natext/ atcco2 NAMELIST/natbio/ caco3r, kdca, nca, part, & & dispo0,conc0,oxymin,grosip, nrdttrc, & & pislope, excret,wsbio,wchl,wchld,resrat,mprat,mzrat, & & grazrat,xprefc,xprefp,unass,xkgraz,xkmort,xksi1, & & xksi2,xremip,xremik,xsirem,xkdoc1,xkdoc2, & & excret2,resrat2,mprat2,mpratm,mzrat2,grazrat2, & & xprefz, xprefpoc, unass2, xkgraz2, xlam1, & & ferat3,conc1,conc2,conc3,concnnh4,concdnh4, & & nitrif,epsher,epsher2,pislope2,wsbio2,sigma1, & & sigma2, zprefc, zprefp, zprefd,fecnm,fecdm, & & chlcnm,chlcdm, sedfeinput NAMELIST/natsms/bdustfer, briver, bndepo, bsedinput #if defined key_kriest NAMELIST/natkriest/ xkr_eta , xkr_zeta , xkr_sfact, xkr_mass_min, xkr_mass_max, & & xkr_dnano, xkr_ddiat, xkr_dmeso, xkr_daggr , xkr_stick #endif !!---------------------------------------------------------------------- IF(lwp) WRITE(numout,*) IF(lwp) WRITE(numout,*) ' trc_lsm_pisces : read PISCES namelists' IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' ! ! Open the namelist file ! ! ---------------------- clname ='namelist.trc.sms' CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', & & 1, numout, .FALSE., 1 ) ! ! natext : Atmospheric parameters ! ! -------------------- ---------- REWIND( numnat ) ! read natext READ ( numnat, natext ) IF(lwp) THEN ! control print WRITE(numout,*) WRITE(numout,*) ' Namelist : natext' WRITE(numout,*) ' atmospheric pCO2 atcco2 = ',atcco2 ENDIF ! ! natbio : biological parameters ! ! ------------------------------ REWIND( numnat ) ! read natbio READ ( numnat, natbio ) IF(lwp) THEN ! control print WRITE(numout,*) ' Namelist : natbio' WRITE(numout,*) ' mean rainratio caco3r =', caco3r WRITE(numout,*) ' diss. rate constant calcite (per month) kdca =', kdca WRITE(numout,*) ' order of reaction for calcite dissolution nca =', nca WRITE(numout,*) ' part of calcite not dissolved in guts part =', part WRITE(numout,*) ' mean Si/C ratio grosip =', grosip WRITE(numout,*) ' Calcite dissolution half saturation dispo0 =', dispo0 WRITE(numout,*) ' Phosphate half saturation conc0 =', conc0 WRITE(numout,*) ' frequence pour la biologie nrdttrc =', nrdttrc WRITE(numout,*) ' P-I slope pislope =', pislope WRITE(numout,*) ' excretion ratio of phytoplankton excret =', excret WRITE(numout,*) ' POC sinking speed wsbio =', wsbio WRITE(numout,*) ' quadratic mortality of phytoplankton wchl =', wchl WRITE(numout,*) ' maximum quadratic mortality of diatoms wchld =', wchld WRITE(numout,*) ' exsudation rate of zooplankton resrat =', resrat WRITE(numout,*) ' phytoplankton mortality rate mprat =', mprat WRITE(numout,*) ' zooplankton mortality rate mzrat =', mzrat WRITE(numout,*) ' zoo preference for phyto xprefc =', xprefc WRITE(numout,*) ' zoo preference for POC xprefp =', xprefp WRITE(numout,*) ' maximal zoo grazing rate grazrat =', grazrat WRITE(numout,*) ' non assimilated fraction of phyto by zoo unass =', unass WRITE(numout,*) ' half sturation constant for grazing xkgraz =', xkgraz WRITE(numout,*) ' half saturation constant for mortality xkmort =', xkmort WRITE(numout,*) ' half saturation constant for Si uptake xksi1 =', xksi1 WRITE(numout,*) ' half saturation constant for Si/C xksi2 =', xksi2 WRITE(numout,*) ' remineralisation rate of POC xremip =', xremip WRITE(numout,*) ' remineralization rate of DOC xremik =', xremik WRITE(numout,*) ' remineralization rate of Si xsirem =', xsirem WRITE(numout,*) ' 1st half-sat. of DOC remineralization xkdoc1 =', xkdoc1 WRITE(numout,*) ' 2nd half-sat. of DOC remineralization xkdoc2 =', xkdoc2 WRITE(numout,*) ' excretion ratio of diatoms excret2 =', excret2 WRITE(numout,*) ' exsudation rate of mesozooplankton resrat2 =', resrat2 WRITE(numout,*) ' Diatoms mortality rate mprat2 =', mprat2 WRITE(numout,*) ' Phytoplankton minimum mortality rate mpratm =', mpratm WRITE(numout,*) ' mesozooplankton mortality rate mzrat2 =', mzrat2 WRITE(numout,*) ' zoo preference for zoo xprefz =', xprefz WRITE(numout,*) ' zoo preference for poc xprefpoc =', xprefpoc WRITE(numout,*) ' maximal mesozoo grazing rate grazrat2 =', grazrat2 WRITE(numout,*) ' non assimilated fraction of P by mesozoo unass2 =', unass2 WRITE(numout,*) ' Efficicency of Mesozoo growth epsher2 =', epsher2 WRITE(numout,*) ' Efficiency of microzoo growth epsher =', epsher WRITE(numout,*) ' half sturation constant for grazing 2 xkgraz2 =', xkgraz2 WRITE(numout,*) ' Maximum aggregation rate for diatoms wchld =', wchld WRITE(numout,*) ' scavenging rate of Iron xlam1 =', xlam1 WRITE(numout,*) ' Fe/C in zooplankton ferat3 =', ferat3 WRITE(numout,*) ' Phosphate half saturation for diatoms conc1 =', conc1 WRITE(numout,*) ' Iron half saturation for phyto conc2 =', conc2 WRITE(numout,*) ' Iron half saturation for diatoms conc3 =', conc3 WRITE(numout,*) ' NH4 half saturation for phyto concnnh4 =', concnnh4 WRITE(numout,*) ' NH4 half saturation for diatoms concdnh4 =', concdnh4 WRITE(numout,*) ' NH4 nitrification rate nitrif =', nitrif WRITE(numout,*) ' P-I slope for diatoms pislope2 =', pislope2 WRITE(numout,*) ' Big particles sinking speed wsbio2 =', wsbio2 WRITE(numout,*) ' Fraction of microzoo excretion as DOM sigma1 =', sigma1 WRITE(numout,*) ' Fraction of mesozoo excretion as DOM sigma2 =', sigma2 WRITE(numout,*) ' Microzoo preference for POM zprefc =', zprefc WRITE(numout,*) ' Microzoo preference for Nanophyto zprefp =', zprefp WRITE(numout,*) ' Microzoo preference for Diatoms zprefd =', zprefd WRITE(numout,*) ' Minimum Chl/C in nanophytoplankton chlcnm =', chlcnm WRITE(numout,*) ' Minimum Chl/C in diatoms chlcdm =', chlcdm WRITE(numout,*) ' Maximum Fe/C in nanophytoplankton fecnm =', fecnm WRITE(numout,*) ' Minimum Fe/C in diatoms fecdm =', fecdm WRITE(numout,*) ' Coastal release of Iron sedfeinput=', sedfeinput ENDIF ! ! natsms : SMS parameters ! ! ----------------------- REWIND( numnat ) ! read natsms READ ( numnat, natsms ) IF(lwp) THEN WRITE(numout,*) ' ' WRITE(numout,*) ' Namelist : natsms' WRITE(numout,*) ' Dust input from the atmosphere bdustfer = ', bdustfer WRITE(numout,*) ' River input of nutrients briver = ', briver WRITE(numout,*) ' Atmospheric deposition of N bndepo = ', bndepo WRITE(numout,*) ' Fe input from sediments bsedinput = ', bsedinput ENDIF #if defined key_kriest ! ! natkriest : kriest parameters ! ! ----------------------------- REWIND( numnat ) ! read natkriest READ ( numnat, natkriest ) IF(lwp) THEN WRITE(numout,*) WRITE(numout,*) ' Namelist : natkriest' WRITE(numout,*) ' Sinking exponent xkr_eta = ', xkr_eta WRITE(numout,*) ' N content exponent xkr_zeta = ', xkr_zeta WRITE(numout,*) ' Sinking factor xkr_sfact = ', xkr_sfact WRITE(numout,*) ' Stickiness xkr_stick = ', xkr_stick WRITE(numout,*) ' Minimum mass for Aggregates xkr_mass_min = ', xkr_mass_min WRITE(numout,*) ' Maximum mass for Aggregates xkr_mass_max = ', xkr_mass_max WRITE(numout,*) ' Size of particles in nano pool xkr_dnano = ', xkr_dnano WRITE(numout,*) ' Size of particles in diatoms pool xkr_ddiat = ', xkr_ddiat WRITE(numout,*) ' Size of particles in mesozoo pool xkr_dmeso = ', xkr_dmeso WRITE(numout,*) ' Size of particles in aggregates pool xkr_daggr = ', xkr_daggr ENDIF ! Computation of some variables xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta ! max and min vertical particle speed xkr_wsbio_min = xkr_sfact * xkr_mass_min**xkr_eta xkr_wsbio_max = xkr_sfact * xkr_mass_max**xkr_eta WRITE(numout,*) ' max and min vertical particle speed ', xkr_wsbio_min, xkr_wsbio_max ! ! effect of the sizes of the different living pools on particle numbers ! nano = 2um-20um -> mean size=6.32 um -> ws=2.596 -> xnum=xnnano=2.337 ! diat and microzoo = 10um-200um -> 44.7 -> 8.732 -> xnum=xndiat=3.718 ! mesozoo = 200um-2mm -> 632.45 -> 45.14 -> xnum=xnmeso=7.147 ! aggregates = 200um-10mm -> 1414 -> 74.34 -> xnum=xnaggr=9.877 ! doc aggregates = 1um ! ---------------------------------------------------------- xkr_nnano = 1. / ( xkr_massp * xkr_dnano ) xkr_ndiat = 1. / ( xkr_massp * xkr_ddiat ) xkr_nmeso = 1. / ( xkr_massp * xkr_dmeso ) xkr_naggr = 1. / ( xkr_massp * xkr_daggr ) #endif ! END SUBROUTINE trc_lsm_pisces #else !!---------------------------------------------------------------------- !! Dummy module : No PISCES bio-model !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_lsm_pisces ! Empty routine END SUBROUTINE trc_lsm_pisces #endif !!====================================================================== END MODULE trclsm_pisces