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

Last change on this file since 268 was 268, checked in by opalod, 19 years ago

nemo_v1_update_05:RB+OA: Update and rewritting of part of the TOP component

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