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.
trcwri.F90 in NEMO/branches/NERC/dev_r4.0.5_NERC/src/TOP – NEMO

source: NEMO/branches/NERC/dev_r4.0.5_NERC/src/TOP/trcwri.F90 @ 15361

Last change on this file since 15361 was 15361, checked in by jpalmier, 12 months ago

Add passive tracers in output.abort if key_top active

  • Property svn:keywords set to Id
File size: 4.8 KB
Line 
1MODULE trcwri
2   !!======================================================================
3   !!                       *** MODULE trcwri ***
4   !!    TOP :   Output of passive tracers
5   !!======================================================================
6   !! History :   1.0  !  2009-05 (C. Ethe)  Original code
7   !!----------------------------------------------------------------------
8#if defined key_top && defined key_iomput
9   !!----------------------------------------------------------------------
10   !!   'key_top'                                           TOP models
11   !!----------------------------------------------------------------------
12   !! trc_wri_trc   :  outputs of concentration fields
13   !!----------------------------------------------------------------------
14   USE dom_oce     ! ocean space and time domain variables
15   USE oce_trc     ! shared variables between ocean and passive tracers
16   USE trc         ! passive tracers common variables
17   USE iom         ! I/O manager
18   USE dianam      ! Output file name
19   USE trcwri_pisces
20   USE trcwri_cfc
21   USE trcwri_c14
22   USE trcwri_age
23   USE trcwri_my_trc
24
25   IMPLICIT NONE
26   PRIVATE
27
28   PUBLIC trc_wri     
29   PUBLIC trc_wri_state
30   
31CONTAINS
32
33   SUBROUTINE trc_wri( kt )
34      !!---------------------------------------------------------------------
35      !!                     ***  ROUTINE trc_wri  ***
36      !!
37      !! ** Purpose :   output passive tracers fields and dynamical trends
38      !!---------------------------------------------------------------------
39      INTEGER, INTENT( in )     :: kt
40      !
41      INTEGER                   :: jn
42      CHARACTER (len=20)        :: cltra
43      CHARACTER (len=40)        :: clhstnam
44      INTEGER ::   inum = 11            ! temporary logical unit
45      !!---------------------------------------------------------------------
46      !
47      IF( ln_timing )   CALL timing_start('trc_wri')
48      !
49      IF( l_offline ) THEN    ! WRITE root name in date.file for use by postpro
50         IF(  kt == nittrc000 .AND. lwp ) THEN    ! WRITE root name in date.file for use by postpro
51           CALL dia_nam( clhstnam, nn_writetrc,' ' )
52           CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
53           WRITE(inum,*) clhstnam
54           CLOSE(inum)
55        ENDIF
56        ! Output of initial vertical scale factor
57        CALL iom_put("e3t_0", e3t_0(:,:,:) )
58        CALL iom_put("e3u_0", e3u_0(:,:,:) )
59        CALL iom_put("e3v_0", e3v_0(:,:,:) )
60        !
61        CALL iom_put( "e3t" , e3t_n(:,:,:) )
62        CALL iom_put( "e3u" , e3u_n(:,:,:) )
63        CALL iom_put( "e3v" , e3v_n(:,:,:) )
64        !
65      ENDIF
66      ! write the tracer concentrations in the file
67      ! ---------------------------------------
68      IF( ln_pisces  )   CALL trc_wri_pisces     ! PISCES
69      IF( ll_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC
70      IF( ln_c14     )   CALL trc_wri_c14        ! surface fluxes of C14
71      IF( ln_age     )   CALL trc_wri_age        ! AGE tracer
72      IF( ln_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers
73      !
74      IF( ln_timing )   CALL timing_stop('trc_wri')
75      !
76   END SUBROUTINE trc_wri
77
78   SUBROUTINE trc_wri_state( kid )
79      !!---------------------------------------------------------------------
80      !!                     ***  ROUTINE trc_wri_state  ***
81      !!
82      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
83      !!      the instantaneous ice state and forcing fields for passive tracer model
84      !!        Used to find errors in the initial state or save the last
85      !!      ocean state in case of abnormal end of a simulation
86      !!
87      !!---------------------------------------------------------------------
88      INTEGER, INTENT( in ) ::   kid 
89      INTEGER :: jn
90      CHARACTER (len=20)   :: cltra
91     
92      DO jn = 1, jptra
93         cltra = trim(ctrcnm(jn))
94         CALL iom_rstput( 0, 0, kid, cltra, trn(:,:,:,jn) )
95      END DO
96     
97   END SUBROUTINE trc_wri
98   
99#else
100   !!----------------------------------------------------------------------
101   !!  Dummy module :                                     No passive tracer
102   !!----------------------------------------------------------------------
103   PUBLIC trc_wri
104CONTAINS
105   SUBROUTINE trc_wri( kt )                     ! Empty routine   
106   INTEGER, INTENT(in) :: kt
107   END SUBROUTINE trc_wri
108   !!
109   SUBROUTINE trc_wri_state( kid )
110      INTEGER, INTENT( in ) ::   kid 
111   END SUBROUTINE trc_wri
112   !!
113#endif
114
115   !!----------------------------------------------------------------------
116   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
117   !! $Id$
118   !! Software governed by the CeCILL license (see ./LICENSE)
119   !!======================================================================
120END MODULE trcwri
Note: See TracBrowser for help on using the repository browser.