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

source: branches/CNRS/dev_r6270_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90 @ 6847

Last change on this file since 6847 was 6453, checked in by aumont, 8 years ago

New developments of PISCES (QUOTA, ligands, lability, ...)

  • Property svn:keywords set to Id
File size: 7.3 KB
RevLine 
[2038]1MODULE trcnam_pisces
2   !!======================================================================
[3680]3   !!                      ***  MODULE trcnam_pisces  ***
[2038]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
[6453]10   !!             3.6  !  2015-05  (O. Aumont) PISCES quota
[2038]11   !!----------------------------------------------------------------------
[6453]12#if defined key_pisces || defined key_pisces_reduced || defined key_pisces_quota
[2038]13   !!----------------------------------------------------------------------
[6453]14   !!   'key_pisces*'  :                                   PISCES bio-model
[2038]15   !!----------------------------------------------------------------------
16   !! trc_nam_pisces       : PISCES model namelist read
17   !!----------------------------------------------------------------------
18   USE oce_trc         ! Ocean variables
19   USE par_trc         ! TOP parameters
20   USE trc             ! TOP variables
21   USE sms_pisces      ! sms trends
[4990]22   USE trdtrc_oce
[3294]23   USE iom             ! I/O manager
[2038]24
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC   trc_nam_pisces   ! called by trcnam.F90 module
30
31
32   !!----------------------------------------------------------------------
[2287]33   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
[2281]34   !! $Id$
[2287]35   !! Software governed by the CeCILL licence (NEMOGCM/NEMO_CeCILL.txt)
[2038]36   !!----------------------------------------------------------------------
37
38CONTAINS
39
40   SUBROUTINE trc_nam_pisces
41      !!----------------------------------------------------------------------
42      !!                     ***  trc_nam_pisces  *** 
43      !!
44      !! ** Purpose :   read PISCES namelist
45      !!
46      !! ** input   :   file 'namelist.trc.sms' containing the following
47      !!             namelist: natext, natbio, natsms
48      !!                       natkriest ("key_kriest")
49      !!----------------------------------------------------------------------
50      !!
[3294]51      INTEGER :: jl, jn
[4147]52      INTEGER :: ios                 ! Local integer output status for namelist read
[3680]53      TYPE(DIAG), DIMENSION(jp_pisces_2d)  :: pisdia2d
54      TYPE(DIAG), DIMENSION(jp_pisces_3d)  :: pisdia3d
55      TYPE(DIAG), DIMENSION(jp_pisces_trd) :: pisdiabio
56      CHARACTER(LEN=20)   ::   clname
[3294]57      !!
[3680]58      NAMELIST/nampisdia/ pisdia3d, pisdia2d     ! additional diagnostics
59#if defined key_pisces_reduced
60      NAMELIST/nampisdbi/ pisdiabio
[2038]61#endif
62
63      !!----------------------------------------------------------------------
64
65      IF(lwp) WRITE(numout,*)
[3680]66      clname = 'namelist_pisces'
67#if defined key_pisces
68      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES namelist'
[6453]69#elif defined key_pisces_quota
70      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES-QUOTA namelist'
[3680]71#else
72      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read LOBSTER namelist'
73#endif
[2038]74      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
[4147]75      CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
76      CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
[4624]77      IF(lwm) CALL ctl_opn( numonp     , 'output.namelist.pis' , 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
[2038]78      !
[3294]79      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
80         !
81         ! Namelist nampisdia
82         ! -------------------
[4147]83         REWIND( numnatp_ref )              ! Namelist nampisdia in reference namelist : Pisces diagnostics
84         READ  ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901)
85901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in reference namelist', lwp )
[2038]86
[4147]87         REWIND( numnatp_cfg )              ! Namelist nampisdia in configuration namelist : Pisces diagnostics
88         READ  ( numnatp_cfg, nampisdia, IOSTAT = ios, ERR = 902 )
89902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in configuration namelist', lwp )
[4624]90         IF(lwm) WRITE ( numonp, nampisdia )
[2038]91
[3294]92         DO jl = 1, jp_pisces_2d
93            jn = jp_pcs0_2d + jl - 1
94            ctrc2d(jn) = pisdia2d(jl)%sname
95            ctrc2l(jn) = pisdia2d(jl)%lname
96            ctrc2u(jn) = pisdia2d(jl)%units
97         END DO
[2038]98
99         DO jl = 1, jp_pisces_3d
100            jn = jp_pcs0_3d + jl - 1
[3294]101            ctrc3d(jn) = pisdia3d(jl)%sname
102            ctrc3l(jn) = pisdia3d(jl)%lname
103            ctrc3u(jn) = pisdia3d(jl)%units
[2038]104         END DO
105
[3294]106         IF(lwp) THEN                   ! control print
107            WRITE(numout,*)
108            WRITE(numout,*) ' Namelist : natadd'
109            DO jl = 1, jp_pisces_3d
110               jn = jp_pcs0_3d + jl - 1
111               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
112                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
113            END DO
[2038]114            WRITE(numout,*) ' '
[3294]115
116            DO jl = 1, jp_pisces_2d
117               jn = jp_pcs0_2d + jl - 1
118               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
119                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
120            END DO
121            WRITE(numout,*) ' '
122         ENDIF
123         !
[2038]124      ENDIF
125
[3680]126#if defined key_pisces_reduced
[2038]127
[6453]128      IF( ( .NOT.lk_iomput .AND. ln_diabio ) .OR. lk_trdmld_trc ) THEN
[3680]129         !
130         ! Namelist nampisdbi
131         ! -------------------
[4147]132         REWIND( numnatp_ref )              ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics
133         READ  ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903)
134903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in reference namelist', lwp )
[2038]135
[4147]136         REWIND( numnatp_cfg )              ! Namelist nampisdbi in configuration namelist : Pisces add. diagnostics
137         READ  ( numnatp_cfg, nampisdbi, IOSTAT = ios, ERR = 904 )
138904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in configuration namelist', lwp )
[4624]139         IF(lwm) WRITE ( numonp, nampisdbi )
[3680]140
141         DO jl = 1, jp_pisces_trd
142            jn = jp_pcs0_trd + jl - 1
143            ctrbio(jl) = pisdiabio(jl)%sname
144            ctrbil(jl) = pisdiabio(jl)%lname
145            ctrbiu(jl) = pisdiabio(jl)%units
146         END DO
147
148         IF(lwp) THEN                   ! control print
149            WRITE(numout,*)
150            WRITE(numout,*) ' Namelist : nampisdbi'
151            DO jl = 1, jp_pisces_trd
152               jn = jp_pcs0_trd + jl - 1
153               WRITE(numout,*) '  biological trend No : ', jn, '    short name : ', ctrbio(jn), &
154                 &             '  long name  : ', ctrbio(jn), '   unit : ', ctrbio(jn)
155            END DO
156            WRITE(numout,*) ' '
157         END IF
158         !
159      END IF
160
161#endif
162
[2038]163   END SUBROUTINE trc_nam_pisces
164
165#else
166   !!----------------------------------------------------------------------
167   !!  Dummy module :                                   No PISCES bio-model
168   !!----------------------------------------------------------------------
169CONTAINS
170   SUBROUTINE trc_nam_pisces                      ! Empty routine
171   END  SUBROUTINE  trc_nam_pisces
172#endif 
173
174   !!======================================================================
175END MODULE trcnam_pisces
Note: See TracBrowser for help on using the repository browser.