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
RevLine 
[268]1MODULE trcctl
[945]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
[274]7   !!----------------------------------------------------------------------
[945]8#if defined key_top
[335]9   !!----------------------------------------------------------------------
[945]10   !!   'key_top'                                                TOP models
11   !!----------------------------------------------------------------------
12   !!   trc_ctl    : control the cpp options, files and namelist values
13   !!----------------------------------------------------------------------
[335]14   USE oce_trc
15   USE trc
16   USE trctrp_ctl
[1077]17   USE trcctl_lobster
18   USE trcctl_pisces
19   USE trcctl_cfc
20   USE trcctl_my_trc
[268]21
[335]22   IMPLICIT NONE
23   PRIVATE
[268]24
[945]25   PUBLIC trc_ctl      ! called by ???
[268]26
[945]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
[268]33CONTAINS
34
[335]35   SUBROUTINE trc_ctl
[945]36      !!----------------------------------------------------------------------
37      !!                     ***  ROUTINE trc_ctl  ***
[335]38      !!
[945]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
[335]42      !!----------------------------------------------------------------------
[945]43      INTEGER ::   istop, jn
44      !!----------------------------------------------------------------------
[268]45
[945]46      IF(lwp) WRITE(numout,*)
47      IF(lwp) WRITE(numout,*) ' trc_ctl :   passive tracer option'
48      IF(lwp) WRITE(numout,*) ' ~~~~~~~'
[268]49
[945]50      istop = 0      ! initialise to zero
[268]51
[945]52      ! restart for passive tracer (input)
53      IF( lrsttr ) THEN
54         IF(lwp) WRITE(numout,*) '       READ a restart FILE for passive tracer'
[335]55         IF(lwp) WRITE(numout,*) ' '
[268]56      ELSE
[945]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
[335]61               IF(lwp) WRITE(numout,*)  &
[945]62                  '       READ an initial FILE  for passive tracer number :', jn, ' traceur : ', ctrcnm(jn) 
[335]63            END IF
64         END DO
[268]65      ENDIF
66
[945]67      ! Don't USE non penetrative convective mixing option
68      ! it's not implemented for passive tracer
69      IF( ln_zdfnpc ) THEN
[335]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
[268]76      ENDIF
77
[945]78      ! transport scheme option
[268]79      CALL trc_trp_ctl
80
[945]81      ! SMS model
[268]82      IF(lwp) WRITE(numout,*) '  '
[945]83      IF(lwp) WRITE(numout,*) '       Source/Sink model option'
[268]84      IF(lwp) WRITE(numout,*) '  '
85
[1077]86      IF( lk_lobster ) THEN   ;   CALL trc_ctl_lobster      ! LOBSTER bio-model
87      ELSE                    ;   IF(lwp) WRITE(numout,*) '          LOBSTER not used'
88      ENDIF
[335]89
[1077]90      IF( lk_pisces  ) THEN   ;   CALL trc_ctl_pisces      ! PISCES  bio-model
91      ELSE                    ;   IF(lwp) WRITE(numout,*) '          PISCES not used'
92      ENDIF
[945]93
[1077]94      IF( lk_cfc     ) THEN   ;   CALL trc_ctl_cfc         ! CFC     tracers
95      ELSE                    ;   IF(lwp) WRITE(numout,*) '          CFC not used'
96      ENDIF
[268]97
[1077]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
[268]101
[1077]102
[335]103      ! E r r o r  control
104      ! ------------------
[945]105      IF( istop > 0  ) THEN
[335]106         IF(lwp)WRITE(numout,*)
107         IF(lwp)WRITE(numout,*) istop,' E R R O R found : we stop'
[945]108         IF(lwp)WRITE(numout,*) '  **************************'
[335]109         IF(lwp)WRITE(numout,*)
110         STOP 'trcctl'
[268]111      ENDIF
[945]112      !
[335]113   END SUBROUTINE trc_ctl
[268]114
115#else
[945]116   !!----------------------------------------------------------------------
117   !!  Empty module :                                     No passive tracer
118   !!----------------------------------------------------------------------
[335]119CONTAINS
[945]120   SUBROUTINE trc_ctl                      ! Dummy routine
[335]121   END SUBROUTINE trc_ctl
[268]122#endif
123
[945]124   !!======================================================================
[268]125END MODULE trcctl
Note: See TracBrowser for help on using the repository browser.