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

Last change on this file since 376 was 340, checked in by opalod, 18 years ago

nemo_v1_update_028 : CT : add missing headers

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 5.2 KB
Line 
1MODULE trcctl
2   !!==========================================================================
3   !!
4   !!                       *** MODULE trcctl ***
5   !!
6   !! Only for passive tracer
7   !! control the cpp options for the run and IF files are availables
8   !! control also consistancy between options and namelist values
9   !!  O.Aumont and A.El Moussaoui 03/05 F90
10   !!=========================================================================
11   !!  TOP 1.0,  LOCEAN-IPSL (2005)
12   !! $Header$
13   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
14   !!----------------------------------------------------------------------
15#if defined key_passivetrc
16   !!----------------------------------------------------------------------
17   !! * Modules used
18   !! ==============
19   USE oce_trc
20   USE trc
21   USE sms
22   USE trctrp_ctl
23
24   IMPLICIT NONE
25   PRIVATE
26
27   !! * Accessibility
28   PUBLIC trc_ctl
29
30CONTAINS
31
32   SUBROUTINE trc_ctl
33      !!===========================================================================================
34      !!
35      !!
36      !!                       ROUTINE trcctl
37      !!                     ******************
38      !!
39      !!      we use IF/ENDIF inside #IF defined option-cpp
40      !!      FILE name must not exceed 21 characters
41      !!     
42      !!===========================================================================================
43     
44      !!----------------------------------------------------------------------
45      !! local declarations
46      !! ==================
47      INTEGER  :: istop, jn
48     
49      !!---------------------------------------------------------------------
50      !!  OPA.9    03/2005 
51      !!---------------------------------------------------------------------
52
53      ! 0. Parameter
54      ! ------------
55      istop = 0
56
57      ! 1. LOGICAL UNIT initialization for specifi! files for passive tracer
58      ! --------------------------------------------------------------------
59      !     nutwrs : OUTPUT for passive tracer restart UNIT (always used)
60      !     nutrst : restart FILE  INPUT  UNIT (lrsttr=.TRUE.)
61      !     nutini(jptra) : UNIT for initial FILE for tracer
62
63      nutwrs = 72
64      nutrst = 73
65
66      ! 2. restart for passive tracer (input)
67      ! -----------------------------
68
69      IF(lwp) WRITE(numout,*) ' '
70      IF(lwp) WRITE(numout,*) ' *** PASSIVE TRACER MODEL OPTIONS'
71      IF(lwp) WRITE(numout,*) ' *** CONTROL'
72      IF(lwp) WRITE(numout,*) ' '
73
74      IF(lwp) WRITE(numout,*) ' '
75      IF(lwp) WRITE(numout,*) ' *** restart option for passive tracer'
76      IF(lwp) WRITE(numout,*) ' '
77
78      IF(lrsttr) THEN
79         IF(lwp) WRITE(numout,*) ' READ a restart FILE for passive tracer'
80         IF(lwp) WRITE(numout,*) ' '
81      ELSE
82         IF(lwp) WRITE(numout,*) ' no restart FILE'
83         IF(lwp) WRITE(numout,*) ' '
84
85         ! 3. OPEN FILES for initial tracer value
86         ! --------------------------------------
87         DO jn=1,jptra
88
89            ! OPEN input FILE only IF lutini(jn) is true
90            ! ------------------------------------------
91            IF (lutini(jn)) THEN 
92
93               ! prepare input FILE name a
94               ! -------------------------                       
95               IF(lwp) WRITE(numout,*)  &
96                  ' READ an initial FILE  for passive tracer number :',jn        &
97                  ,' traceur : ',ctrcnm(jn) 
98               IF(lwp) WRITE(numout,*) ' '
99            END IF
100         END DO
101      ENDIF
102
103      ! 4. Don't USE non penetrative convective mixing option
104      !     it's not implemented for passive tracer
105      ! -----------------------------------------------------
106
107      IF( ln_zdfnpc) THEN
108         IF(lwp) WRITE (numout,*) ' ===>>>> : w a r n i n g '
109         IF(lwp) WRITE (numout,*) ' =======   ============= '
110         IF(lwp) WRITE (numout,*) ' STOP, this sheme is not implemented'
111         IF(lwp) WRITE (numout,*) ' in passive tracer model:'
112         IF(lwp) WRITE (numout,*) ' non penetrative convect. mixing scheme'
113         istop = istop + 1
114      ENDIF
115
116      ! 5. transport scheme option
117      ! --------------------------
118
119      IF(lwp) WRITE(numout,*) '  '
120      CALL trc_trp_ctl
121
122
123      ! 6. SMS model
124      ! ---------------------------------------------
125
126      IF(lwp) WRITE(numout,*) '  '
127      IF(lwp) WRITE(numout,*) ' *** Source/Sink model option'
128      IF(lwp) WRITE(numout,*) '  '
129
130
131#if defined key_trc_lobster1
132#   include "trcctl.lobster1.h90"
133#elif defined key_trc_pisces
134#   include "trcctl.pisces.h90"
135#elif defined key_cfc
136#   include "trcctl.cfc.h90"
137#else
138
139      IF(lwp) WRITE (numout,*) ' No Source/Sink model '
140      IF(lwp) WRITE (numout,*) ' '
141#endif
142
143      ! E r r o r  control
144      ! ------------------
145
146      IF ( istop > 0  ) THEN
147         IF(lwp)WRITE(numout,*)
148         IF(lwp)WRITE(numout,*) istop,' E R R O R found : we stop'
149         IF(lwp)WRITE(numout,*) '**************************'
150         IF(lwp)WRITE(numout,*)
151         STOP 'trcctl'
152      ENDIF
153
154   END SUBROUTINE trc_ctl
155
156#else
157   !!======================================================================
158   !!  Empty module : No passive tracer
159   !!======================================================================
160CONTAINS
161   SUBROUTINE trc_ctl
162
163   END SUBROUTINE trc_ctl
164   
165#endif
166
167END MODULE trcctl
Note: See TracBrowser for help on using the repository browser.