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 trunk/NEMOGCM/NEMO/TOP_SRC/PISCES – NEMO

source: trunk/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90 @ 2774

Last change on this file since 2774 was 2715, checked in by rblod, 13 years ago

First attempt to put dynamic allocation on the trunk

  • Property svn:keywords set to Id
File size: 8.2 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
22
23   IMPLICIT NONE
24   PRIVATE
25
26   PUBLIC   trc_nam_pisces   ! called by trcnam.F90 module
27
28
29   !!----------------------------------------------------------------------
30   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
31   !! $Id$
32   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
33   !!----------------------------------------------------------------------
34
35CONTAINS
36
37   SUBROUTINE trc_nam_pisces
38      !!----------------------------------------------------------------------
39      !!                     ***  trc_nam_pisces  *** 
40      !!
41      !! ** Purpose :   read PISCES namelist
42      !!
43      !! ** input   :   file 'namelist.trc.sms' containing the following
44      !!             namelist: natext, natbio, natsms
45      !!                       natkriest ("key_kriest")
46      !!----------------------------------------------------------------------
47      !!
48#if defined key_diatrc && ! defined key_iomput
49      INTEGER ::  jl, jn
50      ! definition of additional diagnostic as a structure
51      TYPE DIAG
52         CHARACTER(len = 20)  :: snamedia   !: short name
53         CHARACTER(len = 80 ) :: lnamedia   !: long name
54         CHARACTER(len = 20 ) :: unitdia    !: unit
55      END TYPE DIAG
56
57      TYPE(DIAG) , DIMENSION(jp_pisces_2d) :: pisdia2d
58      TYPE(DIAG) , DIMENSION(jp_pisces_3d) :: pisdia3d
59#endif
60
61      NAMELIST/nampisbio/ part, nrdttrc, wsbio, xkmort, ferat3, wsbio2
62#if defined key_kriest
63      NAMELIST/nampiskrp/ xkr_eta, xkr_zeta, xkr_mass_min, xkr_mass_max
64#endif
65#if defined key_diatrc && ! defined key_iomput
66      NAMELIST/nampisdia/ nn_writedia, pisdia3d, pisdia2d     ! additional diagnostics
67#endif
68      NAMELIST/nampisdmp/ ln_pisdmp, ln_pisclo
69
70      !!----------------------------------------------------------------------
71
72      IF(lwp) WRITE(numout,*)
73      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES namelists'
74      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
75
76
77      !                               ! Open the namelist file
78      !                               ! ----------------------
79      CALL ctl_opn( numnat, 'namelist_pisces', 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
80
81      REWIND( numnat )                   
82      READ  ( numnat, nampisbio )
83
84      IF(lwp) THEN                         ! control print
85         WRITE(numout,*) ' Namelist : nampisbio'
86         WRITE(numout,*) '    part of calcite not dissolved in guts     part      =', part
87         WRITE(numout,*) '    frequence pour la biologie                nrdttrc   =', nrdttrc
88         WRITE(numout,*) '    POC sinking speed                         wsbio     =', wsbio
89         WRITE(numout,*) '    half saturation constant for mortality    xkmort    =', xkmort
90         WRITE(numout,*) '    Fe/C in zooplankton                       ferat3    =', ferat3
91         WRITE(numout,*) '    Big particles sinking speed               wsbio2    =', wsbio2
92      ENDIF
93
94#if defined key_kriest
95
96      !                               ! nampiskrp : kriest parameters
97      !                               ! -----------------------------
98      xkr_eta      = 0.62       
99      xkr_zeta     = 1.62       
100      xkr_mass_min = 0.0002     
101      xkr_mass_max = 1.     
102
103      REWIND( numnat )                     ! read natkriest
104      READ  ( numnat, nampiskrp )
105
106      IF(lwp) THEN
107         WRITE(numout,*)
108         WRITE(numout,*) ' Namelist : nampiskrp'
109         WRITE(numout,*) '    Sinking  exponent                        xkr_eta      = ', xkr_eta
110         WRITE(numout,*) '    N content exponent                       xkr_zeta     = ', xkr_zeta
111         WRITE(numout,*) '    Minimum mass for Aggregates              xkr_mass_min = ', xkr_mass_min
112         WRITE(numout,*) '    Maximum mass for Aggregates              xkr_mass_max = ', xkr_mass_max
113         WRITE(numout,*)
114     ENDIF
115
116
117     ! Computation of some variables
118     xkr_massp = 5.7E-6 * 7.6 * xkr_mass_min**xkr_zeta
119
120#endif
121      !
122#if defined key_diatrc && ! defined key_iomput
123
124      ! Namelist namlobdia
125      ! -------------------
126      nn_writedia = 10                   ! default values
127
128      DO jl = 1, jp_pisces_2d
129         jn = jp_pcs0_2d + jl - 1
130         WRITE(ctrc2d(jn),'("2D_",I1)') jn                      ! short name
131         WRITE(ctrc2l(jn),'("2D DIAGNOSTIC NUMBER ",I2)') jn    ! long name
132         ctrc2u(jn) = ' '                                       ! units
133      END DO
134      !                                 ! 3D output arrays
135      DO jl = 1, jp_pisces_3d
136         jn = jp_pcs0_3d + jl - 1
137         WRITE(ctrc3d(jn),'("3D_",I1)') jn                      ! short name
138         WRITE(ctrc3l(jn),'("3D DIAGNOSTIC NUMBER ",I2)') jn    ! long name
139         ctrc3u(jn) = ' '                                       ! units
140      END DO
141
142      REWIND( numnat )               ! read natrtd
143      READ  ( numnat, nampisdia )
144
145      DO jl = 1, jp_pisces_2d
146         jn = jp_pcs0_2d + jl - 1
147         ctrc2d(jn) = pisdia2d(jl)%snamedia
148         ctrc2l(jn) = pisdia2d(jl)%lnamedia
149         ctrc2u(jn) = pisdia2d(jl)%unitdia
150      END DO
151
152      DO jl = 1, jp_pisces_3d
153         jn = jp_pcs0_3d + jl - 1
154         ctrc3d(jn) = pisdia3d(jl)%snamedia
155         ctrc3l(jn) = pisdia3d(jl)%lnamedia
156         ctrc3u(jn) = pisdia3d(jl)%unitdia
157      END DO
158
159      IF(lwp) THEN                   ! control print
160         WRITE(numout,*)
161         WRITE(numout,*) ' Namelist : natadd'
162         WRITE(numout,*) '    frequency of outputs for additional arrays nn_writedia = ', nn_writedia
163         DO jl = 1, jp_pisces_3d
164            jn = jp_pcs0_3d + jl - 1
165            WRITE(numout,*) '   3d output field No : ',jn
166            WRITE(numout,*) '   short name         : ', TRIM(ctrc3d(jn))
167            WRITE(numout,*) '   long name          : ', TRIM(ctrc3l(jn))
168            WRITE(numout,*) '   unit               : ', TRIM(ctrc3u(jn))
169            WRITE(numout,*) ' '
170         END DO
171
172         DO jl = 1, jp_pisces_2d
173            jn = jp_pcs0_2d + jl - 1
174            WRITE(numout,*) '   2d output field No : ',jn
175            WRITE(numout,*) '   short name         : ', TRIM(ctrc2d(jn))
176            WRITE(numout,*) '   long name          : ', TRIM(ctrc2l(jn))
177            WRITE(numout,*) '   unit               : ', TRIM(ctrc2u(jn))
178            WRITE(numout,*) ' '
179         END DO
180      ENDIF
181#endif
182
183      REWIND( numnat )
184      READ  ( numnat, nampisdmp )
185
186      IF(lwp) THEN                         ! control print
187         WRITE(numout,*)
188         WRITE(numout,*) ' Namelist : nampisdmp'
189         WRITE(numout,*) '    Relaxation of tracer to glodap mean value            ln_pisdmp      =', ln_pisdmp
190         WRITE(numout,*) '    Restoring of tracer to initial value  on closed seas  ln_pisclo      =', ln_pisclo
191         WRITE(numout,*) ' '
192      ENDIF
193
194   END SUBROUTINE trc_nam_pisces
195
196#else
197   !!----------------------------------------------------------------------
198   !!  Dummy module :                                   No PISCES bio-model
199   !!----------------------------------------------------------------------
200CONTAINS
201   SUBROUTINE trc_nam_pisces                      ! Empty routine
202   END  SUBROUTINE  trc_nam_pisces
203#endif 
204
205   !!======================================================================
206END MODULE trcnam_pisces
Note: See TracBrowser for help on using the repository browser.