MODULE trcctl !!====================================================================== !! *** MODULE trcctl *** !! TOP : control the cpp options, files and namelist values of a run !!====================================================================== !! History : 1.0 ! 2005-03 (O. Aumont, A. El Moussaoui) original code !!---------------------------------------------------------------------- #if defined key_top !!---------------------------------------------------------------------- !! 'key_top' TOP models !!---------------------------------------------------------------------- !! trc_ctl : control the cpp options, files and namelist values !!---------------------------------------------------------------------- USE oce_trc USE trc USE sms USE trctrp_ctl IMPLICIT NONE PRIVATE PUBLIC trc_ctl ! called by ??? !!---------------------------------------------------------------------- !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) !! $Header:$ !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_ctl !!---------------------------------------------------------------------- !! *** ROUTINE trc_ctl *** !! !! ** Purpose : control the cpp options, namelist and files !! we use IF/ENDIF inside #IF defined option-cpp !! FILE name must not exceed 21 characters !!---------------------------------------------------------------------- INTEGER :: istop, jn !!---------------------------------------------------------------------- IF(lwp) WRITE(numout,*) IF(lwp) WRITE(numout,*) ' trc_ctl : passive tracer option' IF(lwp) WRITE(numout,*) ' ~~~~~~~' istop = 0 ! initialise to zero ! restart for passive tracer (input) IF( lrsttr ) THEN IF(lwp) WRITE(numout,*) ' READ a restart FILE for passive tracer' IF(lwp) WRITE(numout,*) ' ' ELSE IF(lwp) WRITE(numout,*) ' no restart FILE' IF(lwp) WRITE(numout,*) DO jn = 1, jptra IF( lutini(jn) ) THEN ! OPEN input FILE only IF lutini(jn) is true IF(lwp) WRITE(numout,*) & ' READ an initial FILE for passive tracer number :', jn, ' traceur : ', ctrcnm(jn) END IF END DO ENDIF ! Don't USE non penetrative convective mixing option ! it's not implemented for passive tracer IF( ln_zdfnpc ) THEN IF(lwp) WRITE (numout,*) ' ===>>>> : w a r n i n g ' IF(lwp) WRITE (numout,*) ' ======= ============= ' IF(lwp) WRITE (numout,*) ' STOP, this sheme is not implemented' IF(lwp) WRITE (numout,*) ' in passive tracer model:' IF(lwp) WRITE (numout,*) ' non penetrative convect. mixing scheme' istop = istop + 1 ENDIF ! transport scheme option CALL trc_trp_ctl ! SMS model IF(lwp) WRITE(numout,*) ' ' IF(lwp) WRITE(numout,*) ' Source/Sink model option' IF(lwp) WRITE(numout,*) ' ' # if defined key_lobster # include "trcctl.lobster1.h90" # elif defined key_pisces # include "trcctl.pisces.h90" # elif defined key_cfc # include "trcctl.cfc.h90" # else IF(lwp) WRITE (numout,*) ' No Source/Sink ' IF(lwp) WRITE (numout,*) #endif ! E r r o r control ! ------------------ IF( istop > 0 ) THEN IF(lwp)WRITE(numout,*) IF(lwp)WRITE(numout,*) istop,' E R R O R found : we stop' IF(lwp)WRITE(numout,*) ' **************************' IF(lwp)WRITE(numout,*) STOP 'trcctl' ENDIF ! END SUBROUTINE trc_ctl #else !!---------------------------------------------------------------------- !! Empty module : No passive tracer !!---------------------------------------------------------------------- CONTAINS SUBROUTINE trc_ctl ! Dummy routine END SUBROUTINE trc_ctl #endif !!====================================================================== END MODULE trcctl