New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
trclsm_lobster.F90 in branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER – NEMO

source: branches/dev_001_GM/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90 @ 772

Last change on this file since 772 was 772, checked in by gm, 16 years ago

dev_001_GM - change the name of cpp key to key_top, key_lobster, key_pisces, key_kriest and the corresponding lk_

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 11.6 KB
Line 
1MODULE trclsm_lobster
2   !!======================================================================
3   !!                      ***  MODULE trclsm_lobster  ***
4   !! TOP :   initialisation of some run parameters for LOBSTER bio-model
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) from trclsm.lobster1.h90
7   !!----------------------------------------------------------------------
8#if defined key_lobster
9   !!----------------------------------------------------------------------
10   !!   'key_lobster'   :                                 LOBSTER bio-model
11   !!----------------------------------------------------------------------
12   !! trc_lsm_lobster      : LOBSTER model namelist read
13   !!----------------------------------------------------------------------
14   USE oce_trc         ! Ocean variables
15   USE par_trc         ! TOP parameters
16   USE trc             ! TOP variables
17   USE sms             ! sms trends
18
19   IMPLICIT NONE
20   PRIVATE
21
22   PUBLIC   trc_lsm_lobster   ! called by trclsm.F90 module
23
24   !!----------------------------------------------------------------------
25   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)
26   !! $Id$
27   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
28   !!----------------------------------------------------------------------
29
30CONTAINS
31
32   SUBROUTINE trc_lsm_lobster
33      !!----------------------------------------------------------------------
34      !!                     ***  trc_lsm_lobster  *** 
35      !!
36      !! ** Purpose :   read LOBSTER namelist
37      !!
38      !! ** input   :   file 'namelist.trc.sms' containing the following
39      !!             namelist: natbio, natopt, and natdbi ("key_trc_diabio")
40      !!----------------------------------------------------------------------
41      CHARACTER (len=32) :: clname
42      !!
43      NAMELIST/natbio/ apmin, azmin, anmin, admin,                       &
44         &   redf, reddom, slopet, toptp, psinut, akno3, aknh4, rcchl,   &
45         &   rgamma, toptgz, tmaxgz, rgz,                                &
46         &   rppz, taus, aks, filmax, rpnaz, rdnaz, eggzoo, tauzn,       &
47         &   tmmaxp, tmminp, tmmaxz, tmminz, anumin, afdmin, taudn,      &
48         &   vsed, tmumax, aki, tmaxr, tminr, taunn, taudomn, xhr,       &
49         &   sedlam, sedlostpoc,                                         &
50         &   fphylab, fzoolab, fdetlab, fdbod
51      NAMELIST/natopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig
52#if defined key_trc_diabio
53      INTEGER :: ji
54      NAMELIST/natdbi/ctrbio,ctrbil,ctrbiu,nwritebio
55#endif
56      !!----------------------------------------------------------------------
57
58      IF(lwp) WRITE(numout,*)
59      IF(lwp) WRITE(numout,*) ' trc_lsm_lobster : read LOBSTER namelists'
60      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~~'
61
62      !                               ! Open the namelist file
63      !                               ! ----------------------
64      clname ='namelist.trc.sms'
65      CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL',   &
66         &           1, numout, .FALSE., 1 )
67
68      !                               ! natbio : biological parameters
69      !                               ! ------------------------------
70      apmin = 0.                           ! default values
71      azmin = 0.
72      anmin = 0.
73      admin = 0.
74      redf  = 0.
75      reddom = 0.
76      slopet = 0.
77      toptp = 0.
78      psinut = 0.
79      akno3  = 0.
80      aknh4 = 0.
81      rcchl = 0.
82      rgamma= 0.
83      toptgz= 0.
84      tmaxgz= 0.
85      rgz   = 0.
86      rppz  = 0.
87      taus  = 0.
88      aks   = 0.
89      filmax= 0.
90      rpnaz = 0.
91      rdnaz = 0.
92      eggzoo= 0.
93      tauzn = 0.
94      tmmaxp= 0.
95      tmminp= 0.
96      tmmaxz= 0.
97      tmminz= 0.
98      anumin= 0.
99      afdmin= 0.
100      taudn = 0.
101      vsed  = 0.
102      tmumax= 0.
103      aki   = 0.
104      tmaxr   = 1./(     4.*rday)*0.
105      tminr   = 1./(24.*30.*rday)*0.
106      xhr=0.
107      sedlam=0.
108      sedlostpoc=0.
109      taudomn = 0.
110      taunn = 0.
111      fphylab = 0.
112      fzoolab = 0.
113      fdetlab = 0.
114      fdbod = 0.
115
116      REWIND( numnat )                     ! read natbio
117      READ  ( numnat, natbio )
118
119      IF(lwp) THEN
120          WRITE(numout,*) ' Namelist natbio'
121          WRITE(numout,*) '    minimum phytoplancton concentration                  apmin     =', apmin
122          WRITE(numout,*) '    minimum zooplancton   concentration                  azmin     =', azmin
123          WRITE(numout,*) '    minimum nutrients     concentration                  anmin     =', anmin
124          WRITE(numout,*) '    minimum detritus      concentration                  admin     =', admin
125          WRITE(numout,*) '    redfield ratio  c:n                                  redf      =', redf
126          WRITE(numout,*) '    van t hoff coefficient                               slopet    =', slopet
127          WRITE(numout,*) '    optimal photosynthesis temperature                   toptp     =', toptp
128          WRITE(numout,*) '    inhibition of no3 uptake by nh4                      psinut    =', psinut
129          WRITE(numout,*) '    half-saturation nutrient for no3 uptake              akno3     =', akno3
130          WRITE(numout,*) '    half-saturation nutrient for nh4 uptake              aknh4     =', aknh4
131          WRITE(numout,*) '    carbone/chlorophyl ratio                             rcchl     =', rcchl
132          WRITE(numout,*) '    phytoplankton exudation fraction                     rgamma    =', rgamma
133          WRITE(numout,*) '    optimal temperature for zoo growth                   toptgz    =', toptgz
134          WRITE(numout,*) '    maximal temperature for zoo growth                   tmaxgz    =', tmaxgz
135          WRITE(numout,*) '    widtht of zoo temperature FUNCTION                   rgz       =', rgz
136          WRITE(numout,*) '    zoo preference for phyto                             rppz      =', rppz
137          WRITE(numout,*) '    maximal zoo grazing rate                             taus      =', 86400 * taus, ' d'
138          WRITE(numout,*) '    half saturation constant for zoo food                aks       =', aks
139          WRITE(numout,*) '    maximal mass clearance rate for zoo                  filmax    =', filmax
140          WRITE(numout,*) '    non-assimilated phyto by zoo                         rpnaz     =', rpnaz
141          WRITE(numout,*) '    non-assimilated detritus by zoo                      rdnaz     =', rdnaz
142          WRITE(numout,*) '    minimum  for zoo concentration                       eggzoo    =', eggzoo
143          WRITE(numout,*) '    zoo specific excretion rate                          tauzn     =', 86400 * tauzn
144          WRITE(numout,*) '    maximal phyto mortality rate                         tmmaxp    =', 86400 * tmmaxp
145          WRITE(numout,*) '    minimal phyto mortality rate                         tmminp    =', 86400 * tmminp
146          WRITE(numout,*) '    maximal zoo mortality rate                           tmmaxz    =', 86400 * tmmaxz
147          WRITE(numout,*) '    minimal zoo mortality rate                           tmminz    =', 86400 * tmminz
148          WRITE(numout,*) '    nutrient threshold for phyto mort                    anumin    =', anumin
149          WRITE(numout,*) '    food threshold for zoo mort                          afdmin    =', afdmin
150          WRITE(numout,*) '    detrital breakdown rate                              taudn     =', 86400 * taudn , ' d'
151          WRITE(numout,*) '    detritus sedimentation speed                         vsed      =', 86400 * vsed  , ' d'
152          WRITE(numout,*) '    phyto max growth rate                                tmumax    =', 86400 * tmumax, ' d'
153          WRITE(numout,*) '    light hlaf saturation constant                       aki       =', aki
154          WRITE(numout,*) '    maximum damping for d z or p                         tmaxr     =', tmaxr
155          WRITE(numout,*) '    damping-remineralisation rate                        tminr     =', tminr
156          WRITE(numout,*) '    nitrification rate                                   taunn     =', taunn
157          WRITE(numout,*) '    dom remineralisation rate                            taudomn   =', taudomn
158          WRITE(numout,*) '    coeff for martin''s remineralistion                  xhr       =', xhr
159          WRITE(numout,*) '    time coeff of POC in sediments                       sedlam    =', sedlam
160          WRITE(numout,*) '    Sediment geol loss for POC                           sedlostpoc=', sedlostpoc
161          WRITE(numout,*) '    NH4 fraction of phytoplankton exsudation             fphylab   =', fphylab
162          WRITE(numout,*) '    NH4 fraction of zooplankton excretion                fzoolab   =', fzoolab
163          WRITE(numout,*) '    NH4 fraction of detritus dissolution                 fdetlab   =', fdetlab
164          WRITE(numout,*) '    Zooplankton mortality fraction that goes to detritus fdbod     =', fdbod
165      ENDIF
166
167      !                               ! natopt : optical parameters
168      !                               ! ---------------------------
169      xkg0  = 0.                           ! default values
170      xkr0  = 0.
171      xkgp  = 0.
172      xkrp  = 0.
173      xlg   = 0.
174      xlr   = 0.
175      rpig  = 0.
176
177      REWIND( numnat )                     ! read natopt
178      READ  ( numnat, natopt )       
179
180      IF(lwp) THEN                         ! control print
181         WRITE(numout,*)
182         WRITE(numout,*) ' Namelist natopt'
183         WRITE(numout,*) '    green   water absorption coeff                       xkg0  = ', xkg0
184         WRITE(numout,*) '    red water absorption coeff                           xkr0  = ', xkr0
185         WRITE(numout,*) '    pigment red absorption coeff                         xkrp  = ', xkrp
186         WRITE(numout,*) '    pigment green absorption coeff                       xkgp  = ', xkgp
187         WRITE(numout,*) '    green chl exposant                                   xlg   = ', xlg
188         WRITE(numout,*) '    red   chl exposant                                   xlr   = ', xlr
189         WRITE(numout,*) '    chla/chla+phea ratio                                 rpig  = ', rpig
190      ENDIF
191
192#if defined key_trc_diabio
193
194      !                               ! natdbi : bio diagnostics
195      !                               ! ------------------------
196      nwritebio = 10                     ! default values
197      DO ji = 1, jpdiabio
198         IF(     ji <  10 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I1)') ji      ! short name
199         ELSEIF (ji < 100 ) THEN   ;   WRITE (ctrbio(ji),'("BIO_",I2)') ji   
200         ELSE                      ;   WRITE (ctrbio(ji),'("BIO_",I3)') ji
201         ENDIF
202         WRITE(ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji                 ! long name
203         ctrbiu(ji) = 'mmoleN/m3/s '                                            ! units
204      END DO
205
206      REWIND( numnat )                     ! read natdbi
207      READ  ( numnat, natdbi ) 
208
209      IF(lwp) THEN
210         WRITE(numout,*)
211         WRITE(numout,*) ' Namelist natdbi'
212         WRITE(numout,*) '    frequency of outputs for biological outputs  nwritebio = ', nwritebio
213         DO ji = 1, jpdiabio
214            WRITE(numout,*) '     name of biological trend No :',ji,' : ',ctrbio(ji), ctrbil(ji), ' in ', ctrbiu(ji)
215         END DO
216      END IF
217#endif
218      !
219   END SUBROUTINE trc_lsm_lobster
220   
221#else
222   !!----------------------------------------------------------------------
223   !!  Dummy module :                                            No LOBSTER
224   !!----------------------------------------------------------------------
225CONTAINS
226   SUBROUTINE trc_lsm_lobster                      ! Empty routine
227   END  SUBROUTINE  trc_lsm_lobster
228#endif 
229
230   !!======================================================================
231END MODULE trclsm_lobster
Note: See TracBrowser for help on using the repository browser.