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.
trcrst.F in trunk/NEMO/TOP_SRC – NEMO

source: trunk/NEMO/TOP_SRC/trcrst.F @ 247

Last change on this file since 247 was 247, checked in by opalod, 19 years ago

CL : Add CVS Header and CeCILL licence information

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 7.3 KB
Line 
1CCC $Header$ 
2CCC  TOP 1.0 , LOCEAN-IPSL (2005) 
3C This software is governed by CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
4C ---------------------------------------------------------------------------
5      SUBROUTINE trcrst
6CCC---------------------------------------------------------------------
7C
8CCC
9CCC                       ROUTINE trcrst
10CCC                     ******************
11CCC
12CCC  PURPOSE :
13CCC  ---------
14CCC     READ files for restart for passive tracer
15CCC
16CC   METHOD :
17CC   -------
18CC      READ the previous fields on the FILE nutrst
19CC      the first record indicates previous characterics
20CC      after control with the present run, we READ :
21CC      - prognostic variables on the second and more record
22CC
23CC   INPUT :           no
24CC   -----
25CC      COMMON
26CC            /citrst/          : restart PARAMETER
27CC            /comctl/          : parameters for the control
28CC
29CC   OUTPUT :
30CC   ------
31CC      argument                : no
32CC      COMMON
33CC            /cottrc/          : passive tracers fields now
34CC                                and before 
35CC
36CC   WORKSPACE :       no
37CC   ---------
38CC      ji,jj,jk,jl
39CC      ino0,it0,ipcg0,isor0,itke0,ino1,it1,isor1,ipcg1,itke1,idast1
40CC      iarak0,iarak1
41CC
42CC   MODIFICATIONS:
43CC   --------------
44CC      original  : 96-11
45CC      additions : 00-05 (A. Estublier) TVD Limiter Scheme
46CC                                       key_trc_tvd
47CC                  00-12 (O. Aumont, E. Kestenare) read restart file 
48CC                                                  for sediments               
49CC                  01-05 (O. Aumont, E. Kestenare) read restart file 
50CC                                   for calcite and silicate sediments
51CC----------------------------------------------------------------------
52CC parameters and commons
53CC ======================
54CDIR$ NOLIST
55#if defined key_mpp
56c no ioipsl
57#include "trcrst.mpp.h"
58#    else
59CDIR$ NOLIST
60      USE ioipsl
61      USE oce_trc
62      USE trc
63      USE sms
64      USE trctrp_lec
65      IMPLICIT NONE
66CDIR$ LIST
67#if defined key_passivetrc
68CC----------------------------------------------------------------------
69CC local declarations
70CC ==================
71      INTEGER ino0,ino1,it0,it1,jn,iarak0,iarak1
72      INTEGER ji, jj, jk
73      INTEGER itime, ibvar
74      REAL zdate0, zinfo(3)
75      CHARACTER*32 clname,clname1,clname2
76      LOGICAL clog
77      CHARACTER*8 clvnames(30)
78      REAL caralk,bicarb
79
80C
81C
82C 0. initialisations
83C ------------------
84C
85      ino0 =no
86      it0  =nit000
87C
88      IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN
89          iarak0 = 1
90      ELSE
91          iarak0=0
92      ENDIF
93
94C
95      IF(lwp) THEN
96          WRITE(numout,*) ' '
97          WRITE(numout,*) ' *** trcrst beginning of restart for'
98          WRITE(numout,*) ' passive tracer'
99          WRITE(numout,*) ' the present run :'
100          WRITE(numout,*) '   number job is  : ',no
101          WRITE(numout,*) '   with the time nit000 : ',nit000
102          IF(iarak0.eq.1) then
103              WRITE(numout,*) '   and before fields for Arakawa sheme '
104          ENDIF
105          WRITE(numout,*) ' '
106      ENDIF
107C
108C 1. READ nutrst
109C --------------
110C
111C ... first information
112C
113      clname='restart.trc'
114      itime=0
115      clog=.false.
116      CALL restini(clname,jpi,jpj,glamt,gphit,jpk,gdept,clname
117     $    ,itime,zdate0,rdt,nutrst)
118C
119      CALL ioget_vname(nutrst, ibvar, clvnames)
120      CALL restget(nutrst,'info',1,1,3,0,clog,zinfo)
121      ino1  = nint(zinfo(1))
122      it1   = nint(zinfo(2))
123      iarak1 = nint(zinfo(3))
124C
125      IF(lwp) THEN
126          WRITE(numout,*) ' '
127          WRITE(numout,*) ' READ nutrst with '
128          WRITE(numout,*) '   number job is  : ',ino1
129          WRITE(numout,*) '   with the time it : ',it1
130          IF(iarak1.eq.1) then
131              WRITE(numout,*) '   and before fields for Arakawa sheme '
132          ENDIF
133          WRITE(numout,*) '   number of variables   : ', ibvar
134          WRITE(numout,*) '   NetCDF variables      : '
135          WRITE(numout,*) ' ',clvnames (:ibvar)
136          WRITE(numout,*) ' '
137      ENDIF
138C
139C 1.2 control of date
140C
141      IF((it0-it1).ne.1.and.abs(nrsttr).eq.1) THEN
142          IF(lwp) THEN
143              WRITE(numout,*) ' ===>>>> : problem with nit000 for the',
144     $            ' passive tracer restart'
145              WRITE(numout,*) ' =======                              ',
146     $            ' ======================'
147              WRITE(numout,*) ' we stop. verify the FILE'
148              WRITE(numout,*) ' or rerun with the value  0 for the'
149              WRITE(numout,*) ' control of time PARAMETER   nrstdt'
150              WRITE(numout,*) ' '
151          ENDIF
152          STOP 'trcrst'
153      ENDIF
154C
155C 1.3 Control of the sheme
156C
157      IF(iarak0.ne.iarak1) THEN
158          IF(lwp) THEN
159              WRITE(numout,*) ' ===>>>> : problem with the',
160     $            ' passive tracer restart file'
161              WRITE(numout,*) ' =======                              ',
162     $            ' ==========================='
163              WRITE(numout,*) ' we stop. verify the FILE'
164              WRITE(numout,*) ' before field required IF 1=',iarak0
165              WRITE(numout,*) ' before field present in file IF 1=',
166     $            iarak1
167              WRITE(numout,*) ' '
168          ENDIF
169          STOP 'trcrst'
170      ENDIF
171
172C
173C ... READ prognostic variables and computes diagnostic variable
174C
175       DO jn=1,jptra
176         clname='TRN'//ctrcnm(jn)
177         CALL restget(nutrst,clname,jpi,jpj,jpk,0,clog,trn(:,:,:,jn))
178       END DO
179
180       DO jn=1,jptra
181         clname='TRB'//ctrcnm(jn)
182         CALL restget(nutrst,clname,jpi,jpj,jpk,0,clog,trb(:,:,:,jn))
183       END DO
184
185#     if defined key_trc_hamocc3
186         clname='SED'//ctrcnm(jppoc)
187         clname1='SED'//ctrcnm(jpcal)
188         clname2='SED'//ctrcnm(jpsil)
189         CALL restget(nutrst,clname1,jpi,jpj,1,0,clog,sedcal(:,:))
190         CALL restget(nutrst,clname2,jpi,jpj,1,0,clog,sedsil(:,:))
191         CALL restget(nutrst,clname,jpi,jpj,1,0,clog,sedpoc(:,:))
192#     elif defined key_trc_npzd || defined key_trc_lobster1
193         clname='SED'//ctrcnm(jpdet)
194         CALL restget(nutrst,clname,jpi,jpj,1,0,clog,sedpoc(:,:))
195#     elif defined key_trc_pisces
196C
197         clname='Silicalim'
198         CALL restget(nutrst,clname,jpi,jpj,1,0,clog,xksi)
199         xksimax=xksi
200C
201         clname='SED'//ctrcnm(jppoc)
202         clname1='SED'//ctrcnm(jpcal)
203         clname2='SED'//ctrcnm(jpsil)
204         CALL restget(nutrst,clname1,jpi,jpj,1,0,clog,sedcal(:,:))
205         CALL restget(nutrst,clname2,jpi,jpj,1,0,clog,sedsil(:,:))
206         CALL restget(nutrst,clname,jpi,jpj,1,0,clog,sedpoc(:,:))
207#     endif
208
209#if defined key_trc_hamocc3 || defined key_trc_pisces 
210
211C
212C  Initialization of chemical variables of the carbon cycle
213C  --------------------------------------------------------
214C
215        DO jk = 1,jpk
216          DO jj = 1,jpj
217            DO ji = 1,jpi
218              caralk = trn(ji,jj,jk,jptal)-
219     &                 borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk)))
220              co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)
221     &           +(1.-tmask(ji,jj,jk))*.5e-3
222              bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
223              hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))
224     &           *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9
225              h2co3(ji,jj) = 1.e-5
226            ENDDO
227          ENDDO
228        ENDDO
229#endif
230
231#else
232C
233C no passive tracers
234C
235#endif
236C
237#endif
238C
239      RETURN
240      END
241
Note: See TracBrowser for help on using the repository browser.