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.
Changeset 945 for trunk/NEMO/TOP_SRC/trcsms.F90 – NEMO

Ignore:
Timestamp:
2008-05-14T18:14:53+02:00 (16 years ago)
Author:
cetlod
Message:

Update modules for new version of TOP model, see ticket 144

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/trcsms.F90

    r719 r945  
    11MODULE trcsms 
    2    !!=========================================================================================== 
    3    !! 
    4    !!                       *** MODULE trcsms *** 
    5    !! 
    6    !!  Time  loop of opa for passive tracer 
    7    !! 
    8    !!=========================================================================================== 
    9    !!  TOP 1.0,  LOCEAN-IPSL (2005)  
    10    !! $Header$  
    11    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     2   !!====================================================================== 
     3   !!                         ***  MODULE trcsms  *** 
     4   !! TOP :   Time loop of passive tracers sms 
     5   !!====================================================================== 
     6   !! History :   1.0  !  2005-03 (O. Aumont, A. El Moussaoui) F90 
     7   !!             2.0  !  2007-12  (C. Ethe, G. Madec)  revised architecture 
    128   !!---------------------------------------------------------------------- 
    13 #if defined key_passivetrc    
    14    !! * Modules used 
    15    !! ============== 
    16    USE oce_trc 
    17    USE trc 
    18    USE trcfreons 
    19    USE prtctl_trc          ! Print control for debbuging 
     9#if defined key_top 
     10   !!---------------------------------------------------------------------- 
     11   !!   'key_top'                                                TOP models 
     12   !!---------------------------------------------------------------------- 
     13   !!   trc_sms        :  Time loop of passive tracers sms 
     14   !!---------------------------------------------------------------------- 
     15   USE oce_trc            ! 
     16   USE trc                ! 
     17   USE trcsms_lobster     ! LOBSTER bio-model 
     18   USE trcsms_pisces      ! PISCES biogeo-model 
     19   USE trcsms_cfc         ! CFC 11 & 12  
     20   USE trcsms_my_trc      ! MY_TRC  tracers 
     21   USE prtctl_trc         ! Print control for debbuging 
    2022 
    2123   IMPLICIT NONE 
    2224   PRIVATE 
    2325 
    24    !! * Accessibility 
    25    PUBLIC trc_sms 
     26   PUBLIC   trc_sms    ! called in trcstp.F90 
     27 
     28   !!---------------------------------------------------------------------- 
     29   !! NEMO/TOP 2.0 , LOCEAN-IPSL (2007)  
     30   !! $Header:$  
     31   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     32   !!---------------------------------------------------------------------- 
    2633 
    2734CONTAINS 
    2835 
    2936   SUBROUTINE trc_sms( kt ) 
    30       !!=========================================================================================== 
     37      !!--------------------------------------------------------------------- 
     38      !!                     ***  ROUTINE ini_trc  *** 
    3139      !! 
    32       !!                       ROUTINE trcsms 
    33       !!                     ***************** 
     40      !! ** Purpose :   Managment of the time loop of passive tracers sms  
    3441      !! 
    35       !!  PURPOSE : 
    36       !!  --------- 
    37       !!          time loop of opa for passive tracer 
     42      !! ** Method  : -  call the main routine of of each defined tracer model 
     43      !! ------------------------------------------------------------------------------------- 
     44      INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
    3845      !! 
    39       !!   METHOD : 
    40       !!   ------- 
    41       !!      compute the well/spring evolution 
    42       !! 
    43       !!   INPUT : 
    44       !!   ----- 
    45       !!      argument 
    46       !!              ktask           : task identificator 
    47       !!              kt              : time step 
    48       !!      COMMON 
    49       !!            all the COMMON defined in opa 
    50       !! 
    51       !! 
    52       !!   OUTPUT :        : no 
    53       !!   ------ 
    54       !! 
    55       !!   WORKSPACE : 
    56       !!   --------- 
    57       !! 
    58       !!   EXTERNAL : 
    59       !!   -------- 
    60       !!      trcbio, trcsed, trcopt for NPZD or LOBSTER1 models 
    61       !! 
    62       !!      h3cprg for HAMOC3 and P3ZD models 
    63       !! 
    64       !! 
    65       !!   History: 
    66       !!   -------- 
    67       !!      original  : 96-11 
    68       !!      additions : 99-07 (M. Levy) 
    69       !!                  04-00 (O. Aumont, M.A. Foujols) HAMOCC3 and P3ZD 
    70       !!                  12-00 (O. Aumont, E. Kestenare) add trcexp for instantaneous export  
    71       !!   05-03 (O. Aumont and A. El Moussaoui) F90 
    72       !! ------------------------------------------------------------------------------------- 
     46      CHARACTER (len=25) :: charout 
     47      !!--------------------------------------------------------------------- 
    7348 
    74       !! * Arguments 
    75       !! ----------- 
    76       INTEGER, INTENT( in ) ::   kt      ! ocean time-step index       
     49      IF ( MOD(kt,ndttrc) /= 0) RETURN      ! this ROUTINE is called only every ndttrc time step 
    7750 
    78       !! * Local variables 
    79       !! ----------------- 
     51      IF( lk_lobster )   CALL trc_sms_lobster( kt )    ! main program of LOBSTER 
     52      IF( lk_pisces  )   CALL trc_sms_pisces ( kt )    ! main program of PISCES  
     53      IF( lk_cfc     )   CALL trc_sms_cfc    ( kt )    ! surface fluxes of CFC 
     54      IF( lk_my_trc  )   CALL trc_sms_my_trc ( kt )    ! MY_TRC  tracers 
    8055 
    81       CHARACTER (len=25) :: charout 
    82  
    83       !! this ROUTINE is called only every ndttrc time step 
    84       !! -------------------------------------------------- 
    85  
    86       IF ( MOD(kt,ndttrc) /= 0) RETURN 
    87  
    88       !! this first routines are parallelized on vertical slab 
    89       !! ------------------------------------------------------ 
    90  
    91 #if defined key_trc_lobster1 
    92  
    93       !! tracers: optical model 
    94       !! ---------------------- 
    95  
    96       CALL trcopt( kt) 
    97  
    98       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    99          WRITE(charout, FMT="('OPT')") 
    100          CALL prt_ctl_trc_info(charout) 
    101          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
     56      IF(ln_ctl) THEN      ! print mean trends (used for debugging) 
     57         WRITE(charout, FMT="('sms ')") 
     58         CALL prt_ctl_trc_info( charout ) 
     59         CALL prt_ctl_trc( tab4d=trn, mask=tmask, clinfo=ctrcnm ) 
    10260      ENDIF 
    103  
    104       !! tracers: biological model 
    105       !! ------------------------- 
    106  
    107       CALL trcbio( kt) 
    108  
    109       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    110          WRITE(charout, FMT="('BIO')") 
    111          CALL prt_ctl_trc_info(charout) 
    112          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    113       ENDIF 
    114  
    115       !! tracers: sedimentation model 
    116       !! ---------------------------- 
    117  
    118       CALL trcsed(kt) 
    119       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    120          WRITE(charout, FMT="('SED')") 
    121          CALL prt_ctl_trc_info(charout) 
    122          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    123       ENDIF 
    124   
    125       CALL trcexp(kt) 
    126  
    127       IF(ln_ctl)   THEN  ! print mean trends (used for debugging) 
    128          WRITE(charout, FMT="('EXP')") 
    129          CALL prt_ctl_trc_info(charout) 
    130          CALL prt_ctl_trc(tab4d=tra, mask=tmask, clinfo=ctrcnm) 
    131       ENDIF 
    132  
    133 #elif defined key_trc_pisces 
    134  
    135       !! p4zprg: main PROGRAM for PISCES  
    136       !! ------------------------------- 
    137       CALL p4zprg(kt) 
    138  
    139       !! SMS to DO 
    140  
    141 #elif defined key_cfc 
    142  
    143       !! CFC's code taken from K. Rodgers 
    144  
    145       !! This part is still experimental 
    146       !! ------------------------------- 
    147  
    148       CALL trc_freons(kt) 
    149  
    150 #endif 
    151  
    152  
    153  
     61      ! 
    15462   END SUBROUTINE trc_sms 
    15563 
    15664#else 
    15765   !!====================================================================== 
    158    !!  Empty module : No passive tracer 
     66   !!  Dummy module :                                    No passive tracer 
    15967   !!====================================================================== 
    16068CONTAINS 
    161  
    162    SUBROUTINE trc_sms( kt ) 
    163  
    164       ! no passive tracers 
     69   SUBROUTINE trc_sms( kt )                   ! Empty routine 
    16570      INTEGER, INTENT( in ) ::   kt 
    16671      WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt 
    16772   END SUBROUTINE trc_sms 
    168  
    16973#endif  
    17074 
    171  
     75   !!====================================================================== 
    17276END MODULE  trcsms 
Note: See TracChangeset for help on using the changeset viewer.