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_pisces.F90 in trunk/NEMO/TOP_SRC/PISCES – NEMO

source: trunk/NEMO/TOP_SRC/PISCES/trclsm_pisces.F90 @ 1801

Last change on this file since 1801 was 1801, checked in by cetlod, 14 years ago

Reorganisation of restart part of TOP component, see ticket:644

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