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.
trcsms.F90 in NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/TOP – NEMO

source: NEMO/branches/2021/dev_r14116_HPC-10_mcastril_Mixed_Precision_implementation/src/TOP/trcsms.F90 @ 15648

Last change on this file since 15648 was 15648, checked in by sparonuz, 2 years ago

Updated name preprocessor function CASTWP to CASTDP

  • Property svn:keywords set to Id
File size: 3.7 KB
RevLine 
[268]1MODULE trcsms
[945]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
[274]8   !!----------------------------------------------------------------------
[945]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_pisces      ! PISCES biogeo-model
[7646]18   USE trcsms_cfc         ! CFC 11 &/or 12
19   USE trcsms_c14         ! C14
20   USE trcsms_age         ! AGE
[945]21   USE trcsms_my_trc      ! MY_TRC  tracers
[13286]22   USE prtctl             ! Print control for debbuging
[268]23
[335]24   IMPLICIT NONE
25   PRIVATE
[268]26
[945]27   PUBLIC   trc_sms    ! called in trcstp.F90
[268]28
[14219]29   !! * Substitutions
30#  include "single_precision_substitute.h90"
31
[945]32   !!----------------------------------------------------------------------
[10067]33   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
[1152]34   !! $Id$
[10068]35   !! Software governed by the CeCILL license (see ./LICENSE)
[945]36   !!----------------------------------------------------------------------
[268]37CONTAINS
38
[12377]39   SUBROUTINE trc_sms( kt, Kbb, Kmm , Krhs )
[945]40      !!---------------------------------------------------------------------
[1011]41      !!                     ***  ROUTINE trc_sms  ***
[335]42      !!
[945]43      !! ** Purpose :   Managment of the time loop of passive tracers sms
[335]44      !!
[945]45      !! ** Method  : -  call the main routine of of each defined tracer model
[335]46      !! -------------------------------------------------------------------------------------
[12377]47      INTEGER, INTENT( in ) ::   kt        ! ocean time-step index     
48      INTEGER, INTENT( in ) ::   Kbb, Kmm, Krhs ! time level indices
[945]49      !!
[433]50      CHARACTER (len=25) :: charout
[945]51      !!---------------------------------------------------------------------
[3294]52      !
[9124]53      IF( ln_timing )   CALL timing_start('trc_sms')
[3294]54      !
[12377]55      IF( ln_pisces  )   CALL trc_sms_pisces ( kt, Kbb, Kmm, Krhs )    ! main program of PISCES
56      IF( ll_cfc     )   CALL trc_sms_cfc    ( kt, Kbb, Kmm, Krhs )    ! surface fluxes of CFC
57      IF( ln_c14     )   CALL trc_sms_c14    ( kt, Kbb, Kmm, Krhs )    ! surface fluxes of C14
58      IF( ln_age     )   CALL trc_sms_age    ( kt, Kbb, Kmm, Krhs )    ! Age tracer
59      IF( ln_my_trc  )   CALL trc_sms_my_trc ( kt, Kbb, Kmm, Krhs )    ! MY_TRC  tracers
[268]60
[12377]61      IF(sn_cfctl%l_prttrc) THEN                       ! print mean trends (used for debugging)
[945]62         WRITE(charout, FMT="('sms ')")
[13286]63         CALL prt_ctl_info( charout, cdcomp = 'top' )
[15648]64         CALL prt_ctl( tab4d_1=CASTDP(tr(:,:,:,:,Kmm)), mask1=tmask, clinfo=ctrcnm )
[433]65      ENDIF
[945]66      !
[9124]67      IF( ln_timing )   CALL timing_stop('trc_sms')
[3294]68      !
[335]69   END SUBROUTINE trc_sms
[268]70
71#else
[335]72   !!======================================================================
[945]73   !!  Dummy module :                                     No passive tracer
[335]74   !!======================================================================
75CONTAINS
[945]76   SUBROUTINE trc_sms( kt )                   ! Empty routine
[268]77      INTEGER, INTENT( in ) ::   kt
78      WRITE(*,*) 'trc_sms: You should not have seen this print! error?', kt
[335]79   END SUBROUTINE trc_sms
[268]80#endif 
81
[945]82   !!======================================================================
[5656]83END MODULE trcsms
Note: See TracBrowser for help on using the repository browser.