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.
trdini.F90 in NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRD – NEMO

source: NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRD/trdini.F90 @ 10946

Last change on this file since 10946 was 10946, checked in by acc, 5 years ago

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert STO, TRD and USR modules and all knock on effects of these conversions. Note change to USR module may have implications for the TEST CASES (not tested yet). Standard SETTE tested only

  • Property svn:keywords set to Id
File size: 5.6 KB
Line 
1MODULE trdini
2   !!======================================================================
3   !!                       ***  MODULE  trdini  ***
4   !! Ocean diagnostics:  ocean tracers and dynamic trends
5   !!=====================================================================
6   !! History :   3.5  !  2012-02  (G. Madec) add 3D trends output for T, S, U, V, PE and KE
7   !!----------------------------------------------------------------------
8
9   !!----------------------------------------------------------------------
10   !!   trd_init      : initialization step
11   !!----------------------------------------------------------------------
12   USE dom_oce        ! ocean domain
13   USE trd_oce        ! trends: ocean variables
14   USE trdken         ! trends: 3D kinetic   energy
15   USE trdpen         ! trends: 3D potential energy
16   USE trdglo         ! trends: global domain averaged tracers and dynamics
17   USE trdmxl         ! trends: mixed layer averaged trends (tracer only)
18   USE trdvor         ! trends: vertical averaged vorticity
19   USE in_out_manager ! I/O manager
20   USE lib_mpp        ! MPP library
21
22   IMPLICIT NONE
23   PRIVATE
24
25   PUBLIC   trd_init   ! called by nemogcm.F90 module
26
27   !! * Substitutions
28#  include "vectopt_loop_substitute.h90"
29   !!----------------------------------------------------------------------
30   !! NEMO/OCE 4.0 , NEMO Consortium (2018)
31   !! $Id$
32   !! Software governed by the CeCILL license (see ./LICENSE)
33   !!----------------------------------------------------------------------
34CONTAINS
35
36   SUBROUTINE trd_init( Kmm )
37      !!----------------------------------------------------------------------
38      !!                  ***  ROUTINE trd_init  ***
39      !!
40      !! ** Purpose :   Initialization of trend diagnostics
41      !!----------------------------------------------------------------------
42      INTEGER, INTENT(in) ::   Kmm  ! time level index
43      INTEGER ::   ios   ! local integer
44      !!
45      NAMELIST/namtrd/ ln_dyn_trd, ln_KE_trd, ln_vor_trd, ln_dyn_mxl,   &
46         &             ln_tra_trd, ln_PE_trd, ln_glo_trd, ln_tra_mxl, nn_trd 
47      !!----------------------------------------------------------------------
48      !
49      REWIND( numnam_ref )              ! Namelist namtrd in reference namelist : trends diagnostic
50      READ  ( numnam_ref, namtrd, IOSTAT = ios, ERR = 901 )
51901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namtrd in reference namelist', lwp )
52      !
53      REWIND( numnam_cfg )              ! Namelist namtrd in configuration namelist : trends diagnostic
54      READ  ( numnam_cfg, namtrd, IOSTAT = ios, ERR = 902 )
55902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namtrd in configuration namelist', lwp )
56      IF(lwm) WRITE( numond, namtrd )
57      !
58      IF(lwp) THEN                  ! control print
59         WRITE(numout,*)
60         WRITE(numout,*) 'trd_init : Momentum/Tracers trends'
61         WRITE(numout,*) '~~~~~~~~'
62         WRITE(numout,*) '   Namelist namtrd : set trends parameters'
63         WRITE(numout,*) '      global domain averaged dyn & tra trends   ln_glo_trd  = ', ln_glo_trd
64         WRITE(numout,*) '      U & V trends: 3D output                   ln_dyn_trd  = ', ln_dyn_trd
65         WRITE(numout,*) '      U & V trends: Mixed Layer averaged        ln_dyn_mxl  = ', ln_dyn_mxl
66         WRITE(numout,*) '      T & S trends: 3D output                   ln_tra_trd  = ', ln_tra_trd
67         WRITE(numout,*) '      T & S trends: Mixed Layer averaged        ln_tra_mxl  = ', ln_tra_mxl
68         WRITE(numout,*) '      Kinetic   Energy trends                   ln_KE_trd   = ', ln_KE_trd
69         WRITE(numout,*) '      Potential Energy trends                   ln_PE_trd   = ', ln_PE_trd
70         WRITE(numout,*) '      Barotropic vorticity trends               ln_vor_trd  = ', ln_vor_trd
71         !
72         WRITE(numout,*) '      frequency of trends diagnostics (glo)     nn_trd      = ', nn_trd
73      ENDIF
74      !
75      !                             ! trend extraction flags 
76      l_trdtra = .FALSE.                                                       ! tracers 
77      IF ( ln_tra_trd .OR. ln_PE_trd .OR. ln_tra_mxl .OR.   &
78         & ln_glo_trd                                       )   l_trdtra = .TRUE. 
79      !
80      l_trddyn = .FALSE.                                                       ! momentum
81      IF ( ln_dyn_trd .OR. ln_KE_trd .OR. ln_dyn_mxl .OR.   &
82         & ln_vor_trd .OR. ln_glo_trd                       )   l_trddyn = .TRUE.
83      !
84
85!!gm check the stop below     
86      IF( ln_dyn_mxl )   CALL ctl_stop( 'ML diag on momentum are not yet coded we stop' )
87      !
88
89!!gm end
90      IF( ln_tra_mxl .OR. ln_vor_trd )   CALL ctl_stop( 'ML tracer and Barotropic vorticity diags are still using old IOIPSL' )
91!!gm end
92      !
93!      IF( .NOT.ln_linssh .AND. ( l_trdtra .OR. l_trddyn ) )  CALL ctl_stop( 'trend diagnostics with variable volume not validated' )
94     
95!!gm  : Potential BUG : 3D output only for vector invariant form!  add a ctl_stop or code the flux form case
96!!gm  : bug/pb for vertical advection of tracer in vvl case: add T.dt[eta] in the output...
97
98      !                             ! diagnostic initialization 
99      IF( ln_glo_trd )   CALL trd_glo_init( Kmm )      ! global domain averaged trends
100      IF( ln_tra_mxl )   CALL trd_mxl_init      ! mixed-layer          trends 
101      IF( ln_vor_trd )   CALL trd_vor_init      ! barotropic vorticity trends
102      IF( ln_KE_trd  )   CALL trd_ken_init      ! 3D Kinetic    energy trends
103      IF( ln_PE_trd  )   CALL trd_pen_init      ! 3D Potential  energy trends
104      !
105   END SUBROUTINE trd_init
106
107   !!======================================================================
108END MODULE trdini
Note: See TracBrowser for help on using the repository browser.