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

source: branches/2012/dev_r3438_LOCEAN15_PISLOB/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90 @ 3461

Last change on this file since 3461 was 3443, checked in by cetlod, 12 years ago

branch:2012/dev_r3438_LOCEAN15_PISLOB : 1st step of the merge, see ticket #972

  • Property svn:keywords set to Id
File size: 7.0 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
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      TYPE(DIAG), DIMENSION(jp_pisces_2d)  :: pisdia2d
52      TYPE(DIAG), DIMENSION(jp_pisces_3d)  :: pisdia3d
53      TYPE(DIAG), DIMENSION(jp_pisces_trd) :: pisdiabio
54      CHARACTER(LEN=20)   ::   clname
55      !!
56      NAMELIST/nampisdia/ pisdia3d, pisdia2d     ! additional diagnostics
57#if defined key_pisces_reduced
58      NAMELIST/nampisdbi/ pisdiabio
59#endif
60
61      !!----------------------------------------------------------------------
62
63      IF(lwp) WRITE(numout,*)
64#if defined key_pisces
65      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read PISCES namelist'
66      clname = 'namelist_pisces'
67#else
68      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read LOBSTER namelist'
69      clname = 'namelist_lobster'
70#endif
71      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
72      CALL ctl_opn( numnatp, TRIM( clname ), 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
73
74      !
75      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
76         !
77         ! Namelist nampisdia
78         ! -------------------
79         DO jl = 1, jp_pisces_2d
80            WRITE(pisdia2d(jl)%sname,'("2D_",I1)') jl                      ! short name
81            WRITE(pisdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
82            pisdia2d(jl)%units = ' '                                       ! units
83         END DO
84         !                                 ! 3D output arrays
85         DO jl = 1, jp_pisces_3d
86            WRITE(pisdia3d(jl)%sname,'("3D_",I1)') jl                      ! short name
87            WRITE(pisdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl    ! long name
88            pisdia3d(jl)%units = ' '                                       ! units
89         END DO
90
91         REWIND( numnatp )               !
92         READ  ( numnatp, nampisdia )
93
94         DO jl = 1, jp_pisces_2d
95            jn = jp_pcs0_2d + jl - 1
96            ctrc2d(jn) = pisdia2d(jl)%sname
97            ctrc2l(jn) = pisdia2d(jl)%lname
98            ctrc2u(jn) = pisdia2d(jl)%units
99         END DO
100
101         DO jl = 1, jp_pisces_3d
102            jn = jp_pcs0_3d + jl - 1
103            ctrc3d(jn) = pisdia3d(jl)%sname
104            ctrc3l(jn) = pisdia3d(jl)%lname
105            ctrc3u(jn) = pisdia3d(jl)%units
106         END DO
107
108         IF(lwp) THEN                   ! control print
109            WRITE(numout,*)
110            WRITE(numout,*) ' Namelist : natadd'
111            DO jl = 1, jp_pisces_3d
112               jn = jp_pcs0_3d + jl - 1
113               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
114                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
115            END DO
116            WRITE(numout,*) ' '
117
118            DO jl = 1, jp_pisces_2d
119               jn = jp_pcs0_2d + jl - 1
120               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
121                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
122            END DO
123            WRITE(numout,*) ' '
124         ENDIF
125         !
126      ENDIF
127
128#if defined key_pisces_reduced
129
130      IF( ( .NOT.lk_iomput .AND. ln_diabio ) .OR. lk_trdmld_trc ) THEN
131         !
132         ! Namelist nampisdbi
133         ! -------------------
134         DO jl = 1, jp_pisces_trd
135            IF(     jl <  10 ) THEN   ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I1)') jl      ! short name
136            ELSEIF (jl < 100 ) THEN   ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I2)') jl
137            ELSE                      ;   WRITE (pisdiabio(jl)%sname,'("BIO_",I3)') jl
138            ENDIF
139            WRITE(pisdiabio(jl)%lname,'("BIOLOGICAL TREND NUMBER ",I2)') jl                 ! long name
140            pisdiabio(jl)%units = 'mmoleN/m3/s '                                            ! units
141         END DO
142
143         REWIND( numnatp )
144         READ  ( numnatp, nampisdbi )
145
146         DO jl = 1, jp_pisces_trd
147            jn = jp_pcs0_trd + jl - 1
148            ctrbio(jl) = pisdiabio(jl)%sname
149            ctrbil(jl) = pisdiabio(jl)%lname
150            ctrbiu(jl) = pisdiabio(jl)%units
151         END DO
152
153         IF(lwp) THEN                   ! control print
154            WRITE(numout,*)
155            WRITE(numout,*) ' Namelist : nampisdbi'
156            DO jl = 1, jp_pisces_trd
157               jn = jp_pcs0_trd + jl - 1
158               WRITE(numout,*) '  biological trend No : ', jn, '    short name : ', ctrbio(jn), &
159                 &             '  long name  : ', ctrbio(jn), '   unit : ', ctrbio(jn)
160            END DO
161            WRITE(numout,*) ' '
162         END IF
163         !
164      END IF
165
166#endif
167
168   END SUBROUTINE trc_nam_pisces
169
170#else
171   !!----------------------------------------------------------------------
172   !!  Dummy module :                                   No PISCES bio-model
173   !!----------------------------------------------------------------------
174CONTAINS
175   SUBROUTINE trc_nam_pisces                      ! Empty routine
176   END  SUBROUTINE  trc_nam_pisces
177#endif 
178
179   !!======================================================================
180END MODULE trcnam_pisces
Note: See TracBrowser for help on using the repository browser.