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 branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/TRD – NEMO

source: branches/UKMO/dev_r5518_GO6_package/NEMOGCM/NEMO/OPA_SRC/TRD/trdini.F90

Last change on this file was 11101, checked in by frrh, 5 years ago

Merge changes from Met Office GMED ticket 450 to reduce unnecessary
text output from NEMO.
This output, which is typically not switchable, is rarely of interest
in normal (non-debugging) runs and simply redunantley consumes extra
file space.
Further, the presence of this text output has been shown to
significantly degrade performance of models which are run during
Met Office HPC RAID (disk) checks.
The new code introduces switches which are configurable via the
changes made in the associated Met Office MOCI ticket 399.

File size: 5.5 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 "domzgr_substitute.h90"
29#  include "vectopt_loop_substitute.h90"
30   !!----------------------------------------------------------------------
31   !! NEMO/OPA 3.3 , NEMO Consortium (2010)
32   !! $Id$
33   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
34   !!----------------------------------------------------------------------
35CONTAINS
36
37   SUBROUTINE trd_init
38      !!----------------------------------------------------------------------
39      !!                  ***  ROUTINE trd_init  ***
40      !!
41      !! ** Purpose :   Initialization of trend diagnostics
42      !!----------------------------------------------------------------------
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 .AND. nprint > 2) 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         IF(lflush) CALL flush(numout)
74      ENDIF
75      !
76      !                             ! trend extraction flags 
77      l_trdtra = .FALSE.                                                       ! tracers 
78      IF ( ln_tra_trd .OR. ln_PE_trd .OR. ln_tra_mxl .OR.   &
79         & ln_glo_trd                                       )   l_trdtra = .TRUE. 
80      !
81      l_trddyn = .FALSE.                                                       ! momentum
82      IF ( ln_dyn_trd .OR. ln_KE_trd .OR. ln_dyn_mxl .OR.   &
83         & ln_vor_trd .OR. ln_glo_trd                       )   l_trddyn = .TRUE.
84      !
85
86!!gm check the stop below     
87      IF( ln_dyn_mxl )   CALL ctl_stop( 'ML diag on momentum are not yet coded we stop' )
88      !
89
90!!gm end
91      IF( ln_tra_mxl .OR. ln_vor_trd )   CALL ctl_stop( 'ML tracer and Barotropic vorticity diags are still using old IOIPSL' )
92!!gm end
93      !
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      ! 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.