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

source: trunk/NEMO/TOP_SRC/trcctl.F90 @ 1077

Last change on this file since 1077 was 1077, checked in by cetlod, 16 years ago

update modules, see ticket:190

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 4.8 KB
Line 
1MODULE trcctl
2   !!======================================================================
3   !!                         ***  MODULE trcctl  ***
4   !! TOP :   control the cpp options, files and namelist values of a run
5   !!======================================================================
6   !! History :   1.0  !  2005-03 (O. Aumont, A. El Moussaoui) original code
7   !!----------------------------------------------------------------------
8#if defined key_top
9   !!----------------------------------------------------------------------
10   !!   'key_top'                                                TOP models
11   !!----------------------------------------------------------------------
12   !!   trc_ctl    : control the cpp options, files and namelist values
13   !!----------------------------------------------------------------------
14   USE oce_trc
15   USE trc
16   USE trctrp_ctl
17   USE trcctl_lobster
18   USE trcctl_pisces
19   USE trcctl_cfc
20   USE trcctl_my_trc
21
22   IMPLICIT NONE
23   PRIVATE
24
25   PUBLIC trc_ctl      ! called by ???
26
27   !!----------------------------------------------------------------------
28   !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005)
29   !! $Header:$
30   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt)
31   !!----------------------------------------------------------------------
32
33CONTAINS
34
35   SUBROUTINE trc_ctl
36      !!----------------------------------------------------------------------
37      !!                     ***  ROUTINE trc_ctl  ***
38      !!
39      !! ** Purpose :   control the cpp options, namelist and files
40      !!              we use IF/ENDIF inside #IF defined option-cpp
41      !!              FILE name must not exceed 21 characters
42      !!----------------------------------------------------------------------
43      INTEGER ::   istop, jn
44      !!----------------------------------------------------------------------
45
46      IF(lwp) WRITE(numout,*)
47      IF(lwp) WRITE(numout,*) ' trc_ctl :   passive tracer option'
48      IF(lwp) WRITE(numout,*) ' ~~~~~~~'
49
50      istop = 0      ! initialise to zero
51
52      ! restart for passive tracer (input)
53      IF( lrsttr ) THEN
54         IF(lwp) WRITE(numout,*) '       READ a restart FILE for passive tracer'
55         IF(lwp) WRITE(numout,*) ' '
56      ELSE
57         IF(lwp) WRITE(numout,*) '       no restart FILE'
58         IF(lwp) WRITE(numout,*)
59         DO jn = 1, jptra
60            IF( lutini(jn) ) THEN      ! OPEN input FILE only IF lutini(jn) is true
61               IF(lwp) WRITE(numout,*)  &
62                  '       READ an initial FILE  for passive tracer number :', jn, ' traceur : ', ctrcnm(jn) 
63            END IF
64         END DO
65      ENDIF
66
67      ! Don't USE non penetrative convective mixing option
68      ! it's not implemented for passive tracer
69      IF( ln_zdfnpc ) THEN
70         IF(lwp) WRITE (numout,*) ' ===>>>> : w a r n i n g '
71         IF(lwp) WRITE (numout,*) ' =======   ============= '
72         IF(lwp) WRITE (numout,*) ' STOP, this sheme is not implemented'
73         IF(lwp) WRITE (numout,*) ' in passive tracer model:'
74         IF(lwp) WRITE (numout,*) ' non penetrative convect. mixing scheme'
75         istop = istop + 1
76      ENDIF
77
78      ! transport scheme option
79      CALL trc_trp_ctl
80
81      ! SMS model
82      IF(lwp) WRITE(numout,*) '  '
83      IF(lwp) WRITE(numout,*) '       Source/Sink model option'
84      IF(lwp) WRITE(numout,*) '  '
85
86      IF( lk_lobster ) THEN   ;   CALL trc_ctl_lobster      ! LOBSTER bio-model
87      ELSE                    ;   IF(lwp) WRITE(numout,*) '          LOBSTER not used'
88      ENDIF
89
90      IF( lk_pisces  ) THEN   ;   CALL trc_ctl_pisces      ! PISCES  bio-model
91      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
92      ENDIF
93
94      IF( lk_cfc     ) THEN   ;   CALL trc_ctl_cfc         ! CFC     tracers
95      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
96      ENDIF
97
98      IF( lk_my_trc  ) THEN   ;   CALL trc_ctl_my_trc      ! MY_TRC  tracers
99      ELSE                    ;   IF(lwp) WRITE(numout,*) '          MY_TRC not used'
100      ENDIF
101
102
103      ! E r r o r  control
104      ! ------------------
105      IF( istop > 0  ) THEN
106         IF(lwp)WRITE(numout,*)
107         IF(lwp)WRITE(numout,*) istop,' E R R O R found : we stop'
108         IF(lwp)WRITE(numout,*) '  **************************'
109         IF(lwp)WRITE(numout,*)
110         STOP 'trcctl'
111      ENDIF
112      !
113   END SUBROUTINE trc_ctl
114
115#else
116   !!----------------------------------------------------------------------
117   !!  Empty module :                                     No passive tracer
118   !!----------------------------------------------------------------------
119CONTAINS
120   SUBROUTINE trc_ctl                      ! Dummy routine
121   END SUBROUTINE trc_ctl
122#endif
123
124   !!======================================================================
125END MODULE trcctl
Note: See TracBrowser for help on using the repository browser.