source: branches/CNRS/dev_r4826_PISCES_QUOTA/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90 @ 5266

Last change on this file since 5266 was 5266, checked in by cetlod, 6 years ago

PISCES_QUOTA : First commits, see ticket #1516

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