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

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

CL + CE : NEMO TRC_SRC start

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