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 @ 4624

Last change on this file since 4624 was 4624, checked in by acc, 10 years ago

#1305. Fix slow start-up problems on some systems by introducing and using lwm logical to restrict output of merged namelists to the first (or only) processor. lwm is true only on the first processor regardless of ln_ctl. Small changes to all flavours of nemogcm.F90 are also required to write namctl and namcfg after the call to mynode which now opens output.namelist.dyn and writes nammpp.

  • Property svn:keywords set to Id
File size: 7.1 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      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#else
69      IF(lwp) WRITE(numout,*) ' trc_nam_pisces : read LOBSTER namelist'
70#endif
71      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
72      CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
73      CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD'    , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
74      IF(lwm) CALL ctl_opn( numonp     , 'output.namelist.pis' , 'UNKNOWN', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. )
75      !
76      IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN
77         !
78         ! Namelist nampisdia
79         ! -------------------
80         REWIND( numnatp_ref )              ! Namelist nampisdia in reference namelist : Pisces diagnostics
81         READ  ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901)
82901      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in reference namelist', lwp )
83
84         REWIND( numnatp_cfg )              ! Namelist nampisdia in configuration namelist : Pisces diagnostics
85         READ  ( numnatp_cfg, nampisdia, IOSTAT = ios, ERR = 902 )
86902      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in configuration namelist', lwp )
87         IF(lwm) WRITE ( numonp, nampisdia )
88
89         DO jl = 1, jp_pisces_2d
90            jn = jp_pcs0_2d + jl - 1
91            ctrc2d(jn) = pisdia2d(jl)%sname
92            ctrc2l(jn) = pisdia2d(jl)%lname
93            ctrc2u(jn) = pisdia2d(jl)%units
94         END DO
95
96         DO jl = 1, jp_pisces_3d
97            jn = jp_pcs0_3d + jl - 1
98            ctrc3d(jn) = pisdia3d(jl)%sname
99            ctrc3l(jn) = pisdia3d(jl)%lname
100            ctrc3u(jn) = pisdia3d(jl)%units
101         END DO
102
103         IF(lwp) THEN                   ! control print
104            WRITE(numout,*)
105            WRITE(numout,*) ' Namelist : natadd'
106            DO jl = 1, jp_pisces_3d
107               jn = jp_pcs0_3d + jl - 1
108               WRITE(numout,*) '  3d diag nb : ', jn, '    short name : ', ctrc3d(jn), &
109                 &             '  long name  : ', ctrc3l(jn), '   unit : ', ctrc3u(jn)
110            END DO
111            WRITE(numout,*) ' '
112
113            DO jl = 1, jp_pisces_2d
114               jn = jp_pcs0_2d + jl - 1
115               WRITE(numout,*) '  2d diag nb : ', jn, '    short name : ', ctrc2d(jn), &
116                 &             '  long name  : ', ctrc2l(jn), '   unit : ', ctrc2u(jn)
117            END DO
118            WRITE(numout,*) ' '
119         ENDIF
120         !
121      ENDIF
122
123#if defined key_pisces_reduced
124
125      IF( ( .NOT.lk_iomput .AND. ln_diabio ) .OR. lk_trdmld_trc ) THEN
126         !
127         ! Namelist nampisdbi
128         ! -------------------
129         REWIND( numnatp_ref )              ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics
130         READ  ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903)
131903      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in reference namelist', lwp )
132
133         REWIND( numnatp_cfg )              ! Namelist nampisdbi in configuration namelist : Pisces add. diagnostics
134         READ  ( numnatp_cfg, nampisdbi, IOSTAT = ios, ERR = 904 )
135904      IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in configuration namelist', lwp )
136         IF(lwm) WRITE ( numonp, nampisdbi )
137
138         DO jl = 1, jp_pisces_trd
139            jn = jp_pcs0_trd + jl - 1
140            ctrbio(jl) = pisdiabio(jl)%sname
141            ctrbil(jl) = pisdiabio(jl)%lname
142            ctrbiu(jl) = pisdiabio(jl)%units
143         END DO
144
145         IF(lwp) THEN                   ! control print
146            WRITE(numout,*)
147            WRITE(numout,*) ' Namelist : nampisdbi'
148            DO jl = 1, jp_pisces_trd
149               jn = jp_pcs0_trd + jl - 1
150               WRITE(numout,*) '  biological trend No : ', jn, '    short name : ', ctrbio(jn), &
151                 &             '  long name  : ', ctrbio(jn), '   unit : ', ctrbio(jn)
152            END DO
153            WRITE(numout,*) ' '
154         END IF
155         !
156      END IF
157
158#endif
159
160   END SUBROUTINE trc_nam_pisces
161
162#else
163   !!----------------------------------------------------------------------
164   !!  Dummy module :                                   No PISCES bio-model
165   !!----------------------------------------------------------------------
166CONTAINS
167   SUBROUTINE trc_nam_pisces                      ! Empty routine
168   END  SUBROUTINE  trc_nam_pisces
169#endif 
170
171   !!======================================================================
172END MODULE trcnam_pisces
Note: See TracBrowser for help on using the repository browser.