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.
trcini_my_trc.F90 on Ticket #1134 – Attachment – NEMO

Ticket #1134: trcini_my_trc.F90

File trcini_my_trc.F90, 4.2 KB (added by mouchet, 11 years ago)
Line 
1MODULE trcini_my_trc
2   !!======================================================================
3   !!                         ***  MODULE trcini_my_trc  ***
4   !! TOP :   initialisation of the MY_TRC tracers
5   !!======================================================================
6   !! History :   2.0  !  2007-12  (C. Ethe, G. Madec) Original code
7   !!----------------------------------------------------------------------
8#if defined key_my_trc
9   !!----------------------------------------------------------------------
10   !!   'key_my_trc'                                               CFC tracers
11   !!----------------------------------------------------------------------
12   !! trc_ini_my_trc   : MY_TRC model initialisation
13   !!----------------------------------------------------------------------
14   USE par_trc         ! TOP parameters
15   USE oce_trc
16   USE trc
17   USE trcsms_my_trc
18   USE trcnam_my_trc , ONLY : rHDOref,rO18ref,SELref  ! ref isotopic ratio and salinity
19
20   IMPLICIT NONE
21   PRIVATE
22
23   PUBLIC   trc_ini_my_trc   ! called by trcini.F90 module
24
25   !!----------------------------------------------------------------------
26   !! NEMO/TOP 3.3 , NEMO Consortium (2010)
27   !! $Id: trcini_my_trc.F90 2787 2011-06-27 09:54:00Z cetlod $
28   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt)
29   !!----------------------------------------------------------------------
30CONTAINS
31
32   SUBROUTINE trc_ini_my_trc
33      !!----------------------------------------------------------------------
34      !!                     ***  trc_ini_my_trc  *** 
35      !!
36      !! ** Purpose :   initialization for MY_TRC model
37      !!
38      !! ** Method  :
39      !!----------------------------------------------------------------------
40      !
41      REAL(wp) :: ztrai  !,zutmin,zutmax
42      INTEGER  :: ji,jj,jk,jn,jq
43      !                       ! Allocate MY_TRC arrays
44      IF( trc_sms_my_trc_alloc() /= 0 )   CALL ctl_stop( 'STOP', 'trc_ini_my_trc: unable to allocate MY_TRC arrays' )
45
46      IF(lwp) WRITE(numout,*)
47      IF(lwp) WRITE(numout,*) ' trc_ini_my_trc: initialisation of MY_TRC model'
48      !
49      IF( .NOT. ln_rsttr )  THEN
50      !
51        IF(lwp) WRITE(numout,*) '                      ==>    HOMOGENEOUS VALUES'
52      !
53        ztrai=0.05
54        jq=jpk/4
55        !IF(lwp) write(numout,*) jpj,jpi,jq,jpk
56        trn(:,:,:,jpmyt1) = SELref * tmask(:,:,:)
57        DO jj = 1, jpj
58         ztrai=-1.*ztrai
59         DO ji = 1,jpi
60          DO jk = 1,jq
61           trn(ji,jj,jk,jpmyt2) = (SELref+ztrai) * tmask(ji,jj,jk)
62           trn(ji,jj,jk,jpmyt3) = trn(ji,jj,jk,jpmyt1)
63           trn(ji,jj,jk,jpmyt4)= trn(ji,jj,jk,jpmyt2)
64          END DO
65          DO jk = jq+1,jpk
66           trn(ji,jj,jk,jpmyt2) = trn(ji,jj,jk,jpmyt1)
67           trn(ji,jj,jk,jpmyt3) = (SELref+ztrai) * tmask(ji,jj,jk)
68           trn(ji,jj,jk,jpmyt4)= trn(ji,jj,jk,jpmyt3)
69          END DO
70         END DO
71        END DO
72        trn(:,:,:,jpmyt5) = trn(:,:,:,jpmyt1)
73        trn(:,:,:,jpmyt6) = trn(:,:,:,jpmyt1)
74      !
75      ! >>>>> Sais pas pourquoi mais SI ceci ET PAS le write avant DO jj : il se plante grave !!!???
76      !  zutmin  = MINVAL( trn(:,:,:,jpmyt4), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) )
77      !  zutmax  = MAXVAL( trn(:,:,:,jpmyt4), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) )
78
79      !
80      END IF
81      !
82      ztrai = 0._wp                                                   !  content of all tracers
83      DO jn = 1, jptra
84         ztrai = ztrai + glob_sum( trn(:,:,:,jn) * cvol(:,:,:)   )
85      END DO
86      IF( lwp ) WRITE(numout,'(a,e18.10)') 'Initial mean content:',  ztrai / areatot
87      !IF( lwp ) WRITE(numout,'(a,2e18.10)') 'Initial min max for jpmyt4:',  zutmin,zutmax
88      !
89      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~'
90      !
91   END SUBROUTINE trc_ini_my_trc
92
93#else
94   !!----------------------------------------------------------------------
95   !!   Dummy module                                        No MY_TRC model
96   !!----------------------------------------------------------------------
97CONTAINS
98   SUBROUTINE trc_ini_my_trc             ! Empty routine
99   END SUBROUTINE trc_ini_my_trc
100#endif
101
102   !!======================================================================
103END MODULE trcini_my_trc