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 @ 15739

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

trc var in output.abort -- fix 1

File size: 4.9 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   END SUBROUTINE trc_wri_state   
100   
101#else
102   !!----------------------------------------------------------------------
103   !!  Dummy module :                                     No passive tracer
104   !!----------------------------------------------------------------------
105   PUBLIC trc_wri
106CONTAINS
107   SUBROUTINE trc_wri( kt )                     ! Empty routine   
108   INTEGER, INTENT(in) :: kt
109   END SUBROUTINE trc_wri
110  !!
111   SUBROUTINE trc_wri_state( kid )
112      INTEGER, INTENT( in ) ::   kid 
113   END SUBROUTINE trc_wri_state
114   !!   
115#endif
116
117   !!----------------------------------------------------------------------
118   !! NEMO/TOP 4.0 , NEMO Consortium (2018)
119   !! $Id: trcwri.F90 12280 2019-12-21 10:42:44Z cetlod $
120   !! Software governed by the CeCILL license (see ./LICENSE)
121   !!======================================================================
122END MODULE trcwri
Note: See TracBrowser for help on using the repository browser.