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/UKMO/NEMO_4.0.4_MEDUSA_externals_GC5/src/TOP – NEMO

source: NEMO/branches/UKMO/NEMO_4.0.4_MEDUSA_externals_GC5/src/TOP/trcwri.F90 @ 15807

Last change on this file since 15807 was 15807, checked in by jpalmier, 2 years ago

Add xCO2_ATM in output.abort to see what is happening there

File size: 5.0 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_medusa
21   USE trcwri_cfc
22   USE trcwri_c14
23   USE trcwri_age
24   USE trcwri_my_trc
25
26   IMPLICIT NONE
27   PRIVATE
28
29   PUBLIC trc_wri     
30   PUBLIC trc_wri_state
31
32CONTAINS
33
34   SUBROUTINE trc_wri( kt )
35      !!---------------------------------------------------------------------
36      !!                     ***  ROUTINE trc_wri  ***
37      !!
38      !! ** Purpose :   output passive tracers fields and dynamical trends
39      !!---------------------------------------------------------------------
40      INTEGER, INTENT( in )     :: kt
41      !
42      INTEGER                   :: jn
43      CHARACTER (len=20)        :: cltra
44      CHARACTER (len=40)        :: clhstnam
45      INTEGER ::   inum = 11            ! temporary logical unit
46      !!---------------------------------------------------------------------
47      !
48      IF( ln_timing )   CALL timing_start('trc_wri')
49      !
50      IF( l_offline ) THEN    ! WRITE root name in date.file for use by postpro
51         IF(  kt == nittrc000 .AND. lwp ) THEN    ! WRITE root name in date.file for use by postpro
52           CALL dia_nam( clhstnam, nn_writetrc,' ' )
53           CALL ctl_opn( inum, 'date.file', 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, lwp, narea )
54           WRITE(inum,*) clhstnam
55           CLOSE(inum)
56        ENDIF
57        ! Output of initial vertical scale factor
58        CALL iom_put("e3t_0", e3t_0(:,:,:) )
59        CALL iom_put("e3u_0", e3u_0(:,:,:) )
60        CALL iom_put("e3v_0", e3v_0(:,:,:) )
61        !
62        CALL iom_put( "e3t" , e3t_n(:,:,:) )
63        CALL iom_put( "e3u" , e3u_n(:,:,:) )
64        CALL iom_put( "e3v" , e3v_n(:,:,:) )
65        !
66      ENDIF
67      ! write the tracer concentrations in the file
68      ! ---------------------------------------
69      IF( ln_pisces  )   CALL trc_wri_pisces     ! PISCES
70      IF( ln_medusa  )   CALL trc_wri_medusa     ! MEDUSA
71      IF( ll_cfc     )   CALL trc_wri_cfc        ! surface fluxes of CFC
72      IF( ln_c14     )   CALL trc_wri_c14        ! surface fluxes of C14
73      IF( ln_age     )   CALL trc_wri_age        ! AGE tracer
74      IF( ln_my_trc  )   CALL trc_wri_my_trc     ! MY_TRC  tracers
75      !
76      IF( ln_timing )   CALL timing_stop('trc_wri')
77      !
78   END SUBROUTINE trc_wri
79
80   SUBROUTINE trc_wri_state( kid )
81      !!---------------------------------------------------------------------
82      !!                     ***  ROUTINE trc_wri_state  ***
83      !!
84      !! ** Purpose :   create a NetCDF file named cdfile_name which contains
85      !!      the instantaneous ice state and forcing fields for passive tracer model
86      !!        Used to find errors in the initial state or save the last
87      !!      ocean state in case of abnormal end of a simulation
88      !!
89      !!---------------------------------------------------------------------
90      INTEGER, INTENT( in ) ::   kid 
91      INTEGER :: jn
92      CHARACTER (len=20)   :: cltra
93     
94      DO jn = 1, jptra
95         cltra = trim(ctrcnm(jn))
96         CALL iom_rstput( 0, 0, kid, cltra, trn(:,:,:,jn) )
97      END DO
98     
99      IF (ln_medusa) CALL trc_wri_medusa_state( kid ) !! MEDUSA specific output.abort
100     
101   END SUBROUTINE trc_wri_state   
102   
103#else
104   !!----------------------------------------------------------------------
105   !!  Dummy module :                                     No passive tracer
106   !!----------------------------------------------------------------------
107   PUBLIC trc_wri
108CONTAINS
109   SUBROUTINE trc_wri( kt )                     ! Empty routine   
110   INTEGER, INTENT(in) :: kt
111   END SUBROUTINE trc_wri
112  !!
113   SUBROUTINE trc_wri_state( kid )
114      INTEGER, INTENT( in ) ::   kid 
115   END SUBROUTINE trc_wri_state
116   !!   
117#endif
118
119   !!----------------------------------------------------------------------
120   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
121   !! $Id: trcwri.F90 12280 2019-12-21 10:42:44Z cetlod $
122   !! Software governed by the CeCILL license (see ./LICENSE)
123   !!======================================================================
124END MODULE trcwri
Note: See TracBrowser for help on using the repository browser.