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.
trcnam_pisces.F90 in branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: branches/2012/dev_v3_4_STABLE_2012/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90 @ 3881

Last change on this file since 3881 was 3881, checked in by cetlod, 11 years ago

v3_4_stable: fix on passive tracer damping, see ticket #1083

  • Property svn:keywords set to Id
File size: 7.6 KB
Line 
1MODULE trcnam_pisces
2   !!======================================================================
3   !!                      ***  MODULE trcnam_lobster  ***
4   !! TOP :   initialisation of some run parameters for PISCES bio-model
5   !!======================================================================
6   !! History :    -   !  1999-10 (M.A. Foujols, M. Levy) original code
7   !!              -   !  2000-01 (L. Bopp) hamocc3, p3zd
8   !!             1.0  !  2003-08 (C. Ethe)  module F90
9   !!             2.0  !  2007-12  (C. Ethe, G. Madec) from trcnam.pisces.h90
10   !!----------------------------------------------------------------------
11#if defined key_pisces
12   !!----------------------------------------------------------------------
13   !!   'key_pisces'   :                                   PISCES bio-model
14   !!----------------------------------------------------------------------
15   !! trc_nam_pisces       : PISCES model namelist read
16   !!----------------------------------------------------------------------
17   USE oce_trc         ! Ocean variables
18   USE par_trc         ! TOP parameters
19   USE trc             ! TOP variables
20   USE sms_pisces      ! sms trends
21   USE iom             ! I/O manager
22
23
24   IMPLICIT NONE
25   PRIVATE
26
27   PUBLIC   trc_nam_pisces   ! called by trcnam.F90 module
28
29
30   !!----------------------------------------------------------------------
31   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
32   !! $Id$
33   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
34   !!----------------------------------------------------------------------
35
36CONTAINS
37
38   SUBROUTINE trc_nam_pisces
39      !!----------------------------------------------------------------------
40      !!                     ***  trc_nam_pisces  *** 
41      !!
42      !! ** Purpose :   read PISCES namelist
43      !!
44      !! ** input   :   file 'namelist.trc.sms' containing the following
45      !!             namelist: natext, natbio, natsms
46      !!                       natkriest ("key_kriest")
47      !!----------------------------------------------------------------------
48      !!
49      INTEGER :: jl, jn
50      TYPE(DIAG), DIMENSION(jp_pisces_2d) :: pisdia2d
51      TYPE(DIAG), DIMENSION(jp_pisces_3d) :: pisdia3d
52      !!
53      NAMELIST/nampisbio/ nrdttrc, wsbio, xkmort, ferat3, wsbio2
54#if defined key_kriest
55      NAMELIST/nampiskrp/ xkr_eta, xkr_zeta, xkr_mass_min, xkr_mass_max
56#endif
57      NAMELIST/nampisdia/ pisdia3d, pisdia2d     ! additional diagnostics
58      NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp
59
60      !!----------------------------------------------------------------------
61
62      IF(lwp) WRITE(numout,*)
63      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES namelists'
64      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
65
66
67      !                               ! Open the namelist file
68      !                               ! ----------------------
69      CALL ctl_opn( numnatp, 'namelist_pisces', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
70
71      REWIND( numnatp )                   
72      READ  ( numnatp, nampisbio )
73
74      IF(lwp) THEN                         ! control print
75         WRITE(numout,*) ' Namelist : nampisbio'
76         WRITE(numout,*) '    frequence pour la biologie                nrdttrc   =', nrdttrc
77         WRITE(numout,*) '    POC sinking speed                         wsbio     =', wsbio
78         WRITE(numout,*) '    half saturation constant for mortality    xkmort    =', xkmort
79         WRITE(numout,*) '    Fe/C in zooplankton                       ferat3    =', ferat3
80         WRITE(numout,*) '    Big particles sinking speed               wsbio2    =', wsbio2
81      ENDIF
82
83#if defined key_kriest
84
85      !                               ! nampiskrp : kriest parameters
86      !                               ! -----------------------------
87      xkr_eta      = 0.62       
88      xkr_zeta     = 1.62       
89      xkr_mass_min = 0.0002     
90      xkr_mass_max = 1.     
91
92      REWIND( numnatp )                     ! read natkriest
93      READ  ( numnatp, nampiskrp )
94
95      IF(lwp) THEN
96         WRITE(numout,*)
97         WRITE(numout,*) ' Namelist : nampiskrp'
98         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta
99         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta
100         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min
101         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max
102         WRITE(numout,*)
103     ENDIF
104
105
106     ! Computation of some variables
107     xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta
108
109#endif
110      !
111      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
112         !
113         ! Namelist nampisdia
114         ! -------------------
115         DO jl = 1, jp_pisces_2d
116            WRITE(pisdia2d(jl)%sname,'("2D_",I1)') jl                      ! short name
117            WRITE(pisdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
118            pisdia2d(jl)%units = ' '                                       ! units
119         END DO
120         !                                 ! 3D output arrays
121         DO jl = 1, jp_pisces_3d
122            WRITE(pisdia3d(jl)%sname,'("3D_",I1)') jl                      ! short name
123            WRITE(pisdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
124            pisdia3d(jl)%units = ' '                                       ! units
125         END DO
126
127         REWIND( numnatp )               !
128         READ  ( numnatp, nampisdia )
129
130         DO jl = 1, jp_pisces_2d
131            jn = jp_pcs0_2d + jl - 1
132            ctrc2d(jn) = pisdia2d(jl)%sname
133            ctrc2l(jn) = pisdia2d(jl)%lname
134            ctrc2u(jn) = pisdia2d(jl)%units
135         END DO
136
137         DO jl = 1, jp_pisces_3d
138            jn = jp_pcs0_3d + jl - 1
139            ctrc3d(jn) = pisdia3d(jl)%sname
140            ctrc3l(jn) = pisdia3d(jl)%lname
141            ctrc3u(jn) = pisdia3d(jl)%units
142         END DO
143
144         IF(lwp) THEN                   ! control print
145            WRITE(numout,*)
146            WRITE(numout,*) ' Namelist : natadd'
147            DO jl = 1, jp_pisces_3d
148               jn = jp_pcs0_3d + jl - 1
149               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
150                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
151            END DO
152            WRITE(numout,*) ' '
153
154            DO jl = 1, jp_pisces_2d
155               jn = jp_pcs0_2d + jl - 1
156               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
157                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
158            END DO
159            WRITE(numout,*) ' '
160         ENDIF
161         !
162      ENDIF
163
164      REWIND( numnatp )
165      READ  ( numnatp, nampisdmp )
166
167      IF(lwp) THEN                         ! control print
168         WRITE(numout,*)
169         WRITE(numout,*) ' Namelist : nampisdmp'
170         WRITE(numout,*) '    Relaxation of tracer to glodap mean value             ln_pisdmp      =', ln_pisdmp
171         WRITE(numout,*) '    Frequency of Relaxation                               nn_pisdmp      =', nn_pisdmp
172         WRITE(numout,*) ' '
173      ENDIF
174
175   END SUBROUTINE trc_nam_pisces
176
177#else
178   !!----------------------------------------------------------------------
179   !!  Dummy module :                                   No PISCES bio-model
180   !!----------------------------------------------------------------------
181CONTAINS
182   SUBROUTINE trc_nam_pisces                      ! Empty routine
183   END  SUBROUTINE  trc_nam_pisces
184#endif 
185
186   !!======================================================================
187END MODULE trcnam_pisces
Note: See TracBrowser for help on using the repository browser.