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

Last change on this file since 433 was 340, checked in by opalod, 19 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
RevLine 
[268]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   !!=========================================================================
[340]11   !!  TOP 1.0,  LOCEAN-IPSL (2005)
12   !! $Header$
13   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
[274]14   !!----------------------------------------------------------------------
[335]15#if defined key_passivetrc
16   !!----------------------------------------------------------------------
17   !! * Modules used
18   !! ==============
19   USE oce_trc
20   USE trc
21   USE sms
22   USE trctrp_ctl
[268]23
[335]24   IMPLICIT NONE
25   PRIVATE
[268]26
[335]27   !! * Accessibility
28   PUBLIC trc_ctl
[268]29
30CONTAINS
31
[335]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      !!---------------------------------------------------------------------
[268]52
[335]53      ! 0. Parameter
54      ! ------------
[268]55      istop = 0
56
[335]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
[268]62
63      nutwrs = 72
64      nutrst = 73
65
[335]66      ! 2. restart for passive tracer (input)
67      ! -----------------------------
[268]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
[335]79         IF(lwp) WRITE(numout,*) ' READ a restart FILE for passive tracer'
80         IF(lwp) WRITE(numout,*) ' '
[268]81      ELSE
[335]82         IF(lwp) WRITE(numout,*) ' no restart FILE'
83         IF(lwp) WRITE(numout,*) ' '
[268]84
[335]85         ! 3. OPEN FILES for initial tracer value
86         ! --------------------------------------
87         DO jn=1,jptra
[268]88
[335]89            ! OPEN input FILE only IF lutini(jn) is true
90            ! ------------------------------------------
[268]91            IF (lutini(jn)) THEN 
92
[335]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
[268]101      ENDIF
102
[335]103      ! 4. Don't USE non penetrative convective mixing option
104      !     it's not implemented for passive tracer
105      ! -----------------------------------------------------
[268]106
107      IF( ln_zdfnpc) THEN
[335]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
[268]114      ENDIF
115
[335]116      ! 5. transport scheme option
117      ! --------------------------
[268]118
119      IF(lwp) WRITE(numout,*) '  '
120      CALL trc_trp_ctl
121
122
[335]123      ! 6. SMS model
124      ! ---------------------------------------------
125
[268]126      IF(lwp) WRITE(numout,*) '  '
127      IF(lwp) WRITE(numout,*) ' *** Source/Sink model option'
128      IF(lwp) WRITE(numout,*) '  '
129
[335]130
131#if defined key_trc_lobster1
132#   include "trcctl.lobster1.h90"
[268]133#elif defined key_trc_pisces
[335]134#   include "trcctl.pisces.h90"
135#elif defined key_cfc
136#   include "trcctl.cfc.h90"
[268]137#else
138
139      IF(lwp) WRITE (numout,*) ' No Source/Sink model '
140      IF(lwp) WRITE (numout,*) ' '
141#endif
142
[335]143      ! E r r o r  control
144      ! ------------------
[268]145
146      IF ( istop > 0  ) THEN
[335]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'
[268]152      ENDIF
153
[335]154   END SUBROUTINE trc_ctl
[268]155
156#else
[335]157   !!======================================================================
158   !!  Empty module : No passive tracer
159   !!======================================================================
160CONTAINS
161   SUBROUTINE trc_ctl
[268]162
[335]163   END SUBROUTINE trc_ctl
164   
[268]165#endif
166
167END MODULE trcctl
Note: See TracBrowser for help on using the repository browser.