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

source: trunk/NEMO/TOP_SRC/trcrst.F90 @ 433

Last change on this file since 433 was 433, checked in by opalod, 18 years ago

nemo_v1_update_044 : CT : update the passive tracers TOP component and the standard GYRE configuration

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 19.9 KB
Line 
1MODULE trcrst
2   !!======================================================================
3   !!
4   !!                       *** MODULE trcrst ***
5   !!
6   !!   Read the restart files for passive tracers
7   !!
8   !!======================================================================
9   !!  TOP 1.0,  LOCEAN-IPSL (2005)
10   !! $Header$
11   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt
12   !!----------------------------------------------------------------------
13#if defined key_passivetrc   
14   !!----------------------------------------------------------------------
15   !! * Modules used
16   !! ==============
17   USE oce_trc
18   USE trc
19   USE sms
20   USE trctrp_lec   
21   USE lib_mpp
22   
23   IMPLICIT NONE
24   PRIVATE
25   
26   !! * Accessibility
27   PUBLIC trc_rst
28   PUBLIC trc_wri
29   
30   !! * Module variables
31   CHARACTER (len=48) ::   &
32      trestart = 'initial.trc.nc'   ! restart file name
33
34   !! * Substitutions
35#  include "passivetrc_substitute.h90"
36   
37CONTAINS
38
39#if defined key_fdir
40   !!----------------------------------------------------------------------
41   !!   'key_fdir'                                       direct access file
42   !!----------------------------------------------------------------------
43#include "trcrst_fdir.h90"
44   
45#else
46
47   SUBROUTINE trc_rst 
48      !!===========================================================================================
49      !!
50      !!                       ROUTINE trc_rst
51      !!                     *******************
52      !!
53      !!  PURPOSE :
54      !!  ---------
55      !!     READ files for restart for passive tracer
56      !!
57      !!   METHOD :
58      !!   -------
59      !!      READ the previous fields on the FILE nutrst
60      !!      the first record indicates previous characterics
61      !!      after control with the present run, we READ :
62      !!      - prognostic variables on the second and more record
63      !!
64      !!   History:
65      !!   --------
66      !!  original  : 96-11
67      !!  00-05 (A. Estublier) TVD Limiter Scheme key_trc_tvd
68      !!  00-12 (O. Aumont, E. Kestenare) read restart file for sediments
69      !!  01-05 (O. Aumont, E. Kestenare) read restart file for calcite and silicate sediments
70      !!  05-03 (O. Aumont and A. El Moussaoui) F90           
71      !!------------------------------------------------------------------------
72      !! * Modules used
73      USE ioipsl
74
75
76      !! local declarations
77      !! ==================
78      LOGICAL ::  llog       !!!
79      CHARACTER (len=32) :: clname1,clname2
80      CHARACTER (len=32) :: clname = 'restart.trc'
81      CHARACTER (len=12) :: clvnames(80) 
82
83      INTEGER :: ino1,jn,iarak0,iarak1,          &
84         ji, jj, jk,                   &
85         itime, ibvar
86      REAL(wp) :: caralk,bicarb,zdt,        &     
87         zdate0
88      REAL(wp) ::   zdept(jpk), zlamt(jpi,jpj), zphit(jpi,jpj)
89
90      REAL(wp), DIMENSION(3) :: zinfo
91
92#if defined key_trc_pisces 
93#if ! defined key_cfg_1d && ( defined key_orca_r4 || defined key_orca_r2 || defined key_orca_r05 || defined key_orca_r025 )
94      REAL(wp) ::   zareatot, zpo4tot
95#endif
96#endif
97
98      !!---------------------------------------------------------------------
99      !!  OPA.9 03-2005 
100      !!---------------------------------------------------------------------
101      !! 0. initialisations
102      !!------------------
103
104
105      IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN
106         iarak0 = 1
107      ELSE
108         iarak0=0
109      ENDIF
110
111
112      IF(lwp) WRITE(numout,*) ' '
113      IF(lwp) WRITE(numout,*) ' *** trc_rst beginning of restart for'
114      IF(lwp) WRITE(numout,*) ' passive tracer'
115      IF(lwp) WRITE(numout,*) ' the present run :'
116      IF(lwp) WRITE(numout,*) '   number job is  : ',no
117      IF(lwp) WRITE(numout,*) '   with the time nit000 : ',nit000
118      IF(lwp) THEN
119         IF(iarak0.eq.1) then
120            WRITE(numout,*) '   and before fields for Arakawa sheme '
121         ENDIF
122         WRITE(numout,*) ' '
123      ENDIF
124
125      ! Time domain : restart
126      ! -------------------------
127
128      IF(lwp) WRITE(numout,*)
129      IF(lwp) WRITE(numout,*)
130      IF(lwp) WRITE(numout,*) ' *** passive tracer restart option'
131      SELECT CASE ( nrsttr )
132      CASE ( 0 )
133         IF(lwp) WRITE(numout,*) ' nrsttr = 0 no control of nit000'
134      CASE ( 1 )
135         IF(lwp) WRITE(numout,*) ' nrsttr = 1 we control the date of nit000'
136      CASE ( 2 )
137         IF(lwp) WRITE(numout,*) ' nrsttr = 2 the date adatrj is read in restart file'
138      CASE DEFAULT
139         IF(lwp) WRITE(numout,*) '  ===>>>> nrsttr not equal 0, 1 or 2 : no control of the date'
140         IF(lwp) WRITE(numout,*) ' =======                   ========='
141      END SELECT
142
143
144      !! 1. READ nutrst
145      !! --------------
146      !! ... first information
147      !! ---------------------
148      itime=0
149      llog=.false.           !!!
150      zlamt(:,:) = 0.e0
151      zphit(:,:) = 0.e0
152      zdept(:)   = 0.e0
153      CALL restini(clname,jpi,jpj,zlamt,zphit,jpk,zdept,clname         & 
154         &           ,itime,zdate0,zdt,nutrst,domain_id=nidom)
155
156      CALL ioget_vname(nutrst, ibvar, clvnames)
157      CALL restget(nutrst,'info',1,1,3,0,llog,zinfo)
158      ino1  = nint(zinfo(1))
159      iarak1 = nint(zinfo(3))
160
161      IF(lwp) WRITE(numout,*) ' '
162      IF(lwp) WRITE(numout,*) ' READ nutrst with '
163      IF(lwp) WRITE(numout,*) '   number job is  : ',ino1
164      IF(lwp) WRITE(numout,*) '   with the time it : ',nint(zinfo(2))
165      IF(lwp) THEN
166         IF(iarak1.eq.1) then
167            WRITE(numout,*) '   and before fields for Arakawa sheme '
168         ENDIF
169      ENDIF
170      IF(lwp) WRITE(numout,*) '   number of variables   : ', ibvar
171      IF(lwp) WRITE(numout,*) '   NetCDF variables      : '
172      IF(lwp) WRITE(numout,*) ' ',clvnames (:ibvar)
173      IF(lwp) WRITE(numout,*) ' '
174
175      !! 1.2 control of date
176      !! -------------------
177
178      IF( nit000- NINT( zinfo(2) ) /= 1 .AND. nrsttr /= 0 ) THEN
179         IF(lwp) THEN
180            WRITE(numout,*) ' ===>>>> : problem with nit000 for the',    & 
181               ' passive tracer restart'
182            WRITE(numout,*) ' =======                              ',    &   
183               ' ======================'
184            WRITE(numout,*) ' we stop. verify the FILE'
185            WRITE(numout,*) ' or rerun with the value  0 for the'
186            WRITE(numout,*) ' control of time PARAMETER   nrstdt'
187            WRITE(numout,*) ' '
188         ENDIF
189         STOP 'trc_rst'       !!
190      ENDIF
191
192      !! 1.3 Control of the sheme
193      !! ------------------------
194
195      IF(iarak0.ne.iarak1) THEN
196         IF(lwp) THEN
197            WRITE(numout,*) ' ===>>>> : problem with the',       &   
198               ' passive tracer restart file'
199            WRITE(numout,*) ' =======                              ',        & 
200               ' ==========================='
201            WRITE(numout,*) ' we stop. verify the FILE'
202            WRITE(numout,*) ' before field required IF 1=',iarak0
203            WRITE(numout,*) ' before field present in file IF 1=',           & 
204               iarak1
205            WRITE(numout,*) ' '
206         ENDIF
207         STOP 'trc_rst'       !!!!!    AVERIFIER AU NIV F90'
208      ENDIF
209
210
211      !! ... READ prognostic variables and computes diagnostic variable
212      !! ---------------------------------------------------------------
213
214      DO jn=1,jptra
215         clname='TRN'//ctrcnm(jn)
216         CALL restget(nutrst,clname,jpi,jpj,jpk,0,llog,trn(:,:,:,jn))
217      END DO
218
219      DO jn=1,jptra
220         clname='TRB'//ctrcnm(jn)
221         CALL restget(nutrst,clname,jpi,jpj,jpk,0,llog,trb(:,:,:,jn))
222      END DO
223
224
225#if defined key_trc_lobster1
226      clname='SEDB'//ctrcnm(jpdet)
227      clname1='SEDN'//ctrcnm(jpdet)
228      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpocb(:,:))
229      CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedpocn(:,:))
230#elif defined key_trc_pisces
231      clname='Silicalim'
232      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,xksi)
233      xksimax=xksi
234
235      clname='SED'//ctrcnm(jppoc)
236      clname1='SED'//ctrcnm(jpcal)
237      clname2='SED'//ctrcnm(jpsil)
238      CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedcal(:,:))
239      CALL restget(nutrst,clname2,jpi,jpj,1,0,llog,sedsil(:,:))
240      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpoc(:,:))
241
242#elif defined key_cfc
243      clname='qint'
244      CALL restget(nutrst,clname,jpi,jpj,jptra,0,llog,qint(:,:,:))
245      clname1='qtr'
246      CALL restget(nutrst,clname1,jpi,jpj,jptra,0,llog,qtr(:,:,:))         
247#endif
248
249#if defined key_trc_pisces 
250
251#if ! defined key_cfg_1d && ( defined key_orca_r4 || defined key_orca_r2 || defined key_orca_r05 || defined key_orca_r025 )
252
253      zareatot = 0.
254      DO jk = 1, jpk
255         DO jj = 1, jpj
256            DO ji = 1, jpi
257               zareatot = zareatot + tmask(ji,jj,jk) * tmask_i(ji,jj) * &
258                  &                 e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
259            END DO
260         END DO
261      END DO
262
263      IF( lk_mpp ) THEN
264         CALL mpp_sum( zareatot )     ! sum over the global domain 
265      END IF
266
267      zpo4tot = 0.
268      DO jk = 1, jpk
269         DO jj = 1, jpj
270            DO ji = 1, jpi
271               zpo4tot = zpo4tot + trn(ji,jj,jk,jptal) * tmask(ji,jj,jk) * tmask_i(ji,jj) *   &
272                  &                e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)
273            END DO
274         END DO
275      END DO
276
277      IF( lk_mpp ) THEN
278         CALL mpp_sum( zpo4tot )     ! sum over the global domain 
279      END IF
280
281      WRITE(0,*) 'TALK moyen ', zpo4tot/zareatot*1E6
282      zpo4tot = zpo4tot/zareatot*1E6
283      trn(:,:,:,jptal) = trn(:,:,:,jptal)*2391./zpo4tot
284
285      zpo4tot = 0.
286      DO jk = 1, jpk
287         DO jj = 1, jpj
288            DO ji = 1, jpi
289               zpo4tot = zpo4tot + trn(ji,jj,jk,jppo4) * tmask(ji,jj,jk) * tmask_i(ji,jj) *   &
290                  &                e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)
291            END DO
292         END DO
293      END DO
294
295      IF( lk_mpp ) THEN
296         CALL mpp_sum( zpo4tot )     ! sum over the global domain 
297      END IF
298
299
300      WRITE(0,*) 'PO4 moyen ', zpo4tot/zareatot*1E6/122.
301      zpo4tot = zpo4tot/zareatot*1E6/122.
302      trn(:,:,:,jppo4) = trn(:,:,:,jppo4)*2.165/zpo4tot
303
304      zpo4tot = 0.
305      DO jk = 1, jpk
306         DO jj = 1, jpj
307            DO ji = 1, jpi
308               zpo4tot = zpo4tot + trn(ji,jj,jk,jpno3) * tmask(ji,jj,jk) * tmask_i(ji,jj) *   &
309                  &                e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)
310            END DO
311         END DO
312      END DO
313
314      IF( lk_mpp ) THEN
315         CALL mpp_sum( zpo4tot )     ! sum over the global domain 
316      END IF
317
318
319      WRITE(0,*) 'NO3 moyen ', zpo4tot/zareatot*1E6/7.6
320      zpo4tot = zpo4tot/zareatot*1E6/7.6
321      trn(:,:,:,jpno3) = trn(:,:,:,jpno3)*30.9/zpo4tot
322
323      zpo4tot = 0.
324      DO jk = 1, jpk
325         DO jj = 1, jpj
326            DO ji = 1, jpi
327               zpo4tot = zpo4tot + trn(ji,jj,jk,jpsil) * tmask(ji,jj,jk) * tmask_i(ji,jj) *   &
328                  &                e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk)
329            END DO
330         END DO
331      END DO
332
333      IF( lk_mpp ) THEN
334         CALL mpp_sum( zpo4tot )     ! sum over the global domain 
335      END IF
336
337      WRITE(0,*) 'SiO3 moyen ', zpo4tot/zareatot*1E6
338      zpo4tot = zpo4tot/zareatot*1E6
339      trn(:,:,:,jpsil) = MIN( 400E-6,trn(:,:,:,jpsil)*91.51/zpo4tot) 
340
341#endif
342      !!  Initialization of chemical variables of the carbon cycle
343      !!  --------------------------------------------------------
344      DO jk = 1,jpk
345         DO jj = 1,jpj
346            DO ji = 1,jpi
347               caralk = trn(ji,jj,jk,jptal)-       &
348                  &        borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk)))
349               co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)   &
350                  &        +(1.-tmask(ji,jj,jk))*.5e-3
351               bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk)
352               hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))     &
353                  &  *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9
354               h2co3(ji,jj) = 1.e-5
355            ENDDO
356         ENDDO
357      ENDDO
358#endif
359
360   END SUBROUTINE trc_rst
361
362   SUBROUTINE trc_wri(kt)
363      !! ==================================================================================
364      !!
365      !!                       ROUTINE trc_wri
366      !!                     ******************
367      !!
368      !!  PURPOSE :
369      !!  ---------
370      !!     WRITE restart fields in nutwrs
371      !!   METHOD :
372      !!   -------
373      !!
374      !!   nutwrs FILE:
375      !!   each nstock time step , SAVE fields which are necessary for
376      !!   passive tracer restart
377      !!
378      !!
379      !!   INPUT :
380      !!   -----
381      !!      argument
382      !!              kt              : time step
383      !!      COMMON
384      !!            /cottrc/          : passive tracers fields (before,now
385      !!                                  ,after)
386      !!
387      !!   OUTPUT :
388      !!   ------
389      !!      FILE
390      !!           nutwrs          : standard restart fields OUTPUT
391      !!
392      !!   WORKSPACE :
393      !!   ---------
394      !!      ji,jj,jk,jl,ino0,it0,iarak0
395      !!
396      !!   History:
397      !!   --------
398      !!      original : 96-12
399      !!      addition : 99-12 (M.-A. Foujols) NetCDF FORMAT with ioipsl
400      !!      additions : 00-05 (A. Estublier)
401      !!                  TVD Limiter Scheme : key_trc_tvd
402      !!      additions : 01-01 (M.A Foujols, E. Kestenare) bug fix: restclo
403      !!      additions : 01-01 (O. Aumont, E. Kestenare)
404      !!                  write restart file for sediments
405      !!      additions : 01-05 (O. Aumont, E. Kestenare)
406      !!                  write restart file for calcite and silicate sediments
407      !!   05-03 (O. Aumont and A. El Moussaoui) F90
408      !!========================================================================================!
409      !! * Modules used
410      USE ioipsl
411
412      !! * Arguments
413      !! -----------
414      INTEGER, INTENT( in ) :: kt
415
416      !! * local declarations
417      !! ====================
418
419      LOGICAL :: clbon         !!!
420      CHARACTER (len=50) :: clname,clname1,clname2,cln
421
422      INTEGER :: jn,   &
423         ino0,it0,iarak0,     &
424         ic,jc,ji,jj,jk,      &
425         itime
426
427      REAL(wp) :: zdate0, zinfo(3),zdiag_var,    &
428         zdiag_varmin, zdiag_varmax, zdiag_tot, zder
429
430
431      !! 1. OUTPUT of restart fields (nutwrs)
432      !! ---------------------------
433
434      IF( kt == nit000 ) THEN
435         IF(lwp) WRITE(numout,*)
436         IF(lwp) WRITE(numout,*) 'trc_wri : write passive tracers restart.output NetCDF file'
437         IF(lwp) WRITE(numout,*) '~~~~~~~'
438       
439
440         areatot = 0.
441         DO jk = 1, jpk
442            DO jj = 1, jpj
443               DO ji = 1, jpi
444                  areatot = areatot + tmask(ji,jj,jk)*tmask_i(ji,jj)*e1t(ji,jj)*e2t(ji,jj)*fse3t(ji,jj,jk) 
445               END DO
446            END DO
447         END DO
448
449         IF( lk_mpp ) THEN
450             CALL mpp_sum(areatot)     ! sum over the global domain 
451         END IF
452
453         trai = 0.
454         DO jn = 1, jptra
455            DO jk = 1,jpk
456               DO jj = 1, jpj
457                  DO ji = 1, jpi
458                     trai=trai+tmask(ji,jj,jk)*trn(ji,jj,jk,jn)*     &
459                        &    tmask_i(ji,jj)* e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
460                  END DO
461               END DO
462            END DO
463         END DO
464
465         IF( lk_mpp ) THEN
466             CALL mpp_sum(trai)         ! sum over the global domain 
467         END IF
468
469         IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain at NIT000 =',trai
470
471      ENDIF
472
473
474      IF( MOD(kt,nstock) == 0 .OR. kt == nitend ) THEN
475
476         !! 0. initialisations
477         !! ------------------
478
479         IF(lwp) WRITE(numout,*) ' '
480         IF(lwp) WRITE(numout,*) 'trc_wri : write the passive tracer restart file in NetCDF format ',   &
481            'at it= ',kt,' date= ',ndastp
482         IF(lwp) WRITE(numout,*) '~~~~~~~~~'
483
484
485         ino0 =no
486         it0  =kt
487         IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN
488            iarak0 = 1
489         ELSE
490            iarak0=0
491         ENDIF
492
493         zinfo(1)=FLOAT(ino0)
494         zinfo(2)=FLOAT(it0)
495         zinfo(3)=FLOAT(iarak0)
496
497         !! 1. WRITE in nutwrs
498         !! ------------------
499         !!... first information
500
501         INQUIRE (FILE=trestart,EXIST=clbon)
502         IF(clbon) THEN
503            OPEN(UNIT=nutwrs,FILE=trestart,STATUS='old')
504            CLOSE(nutwrs,STATUS='delete')
505         ENDIF
506
507         ic=1
508         DO jc=1,16
509            IF(cexper(jc:jc) /= ' ') ic = jc
510         END DO
511         WRITE(cln,'("_",i4.4,i2.2,i2.2,"_restart.trc")') nyear, nmonth, nday
512         clname=cexper(1:ic)//cln
513         ic=1
514         DO jc=1,48
515            IF(clname(jc:jc) /= ' ') ic=jc
516         END DO
517         trestart=clname(1:ic)//".nc"
518         itime=0
519         CALL ymds2ju(nyear,nmonth,nday,0.0,zdate0)
520         CALL restini('NONE',jpi,jpj,glamt,gphit,jpk,gdept,clname           &
521            &        ,itime,zdate0,rdt*nstock,nutwrs,domain_id=nidom)
522
523         CALL restput(nutwrs,'info',1,1,3,0,zinfo)
524
525         ! prognostic variables
526         ! --------------------
527
528         IF (lwp) WRITE(numout,*) '----TRACER STAT----'
529         zdiag_tot=0.
530         DO jn=1,jptra
531            clname='TRN'//ctrcnm(jn)
532            CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trn(:,:,:,jn))
533
534            zdiag_var=0.
535            zdiag_varmin=0.
536            zdiag_varmax=0.
537
538            DO ji=1, jpi
539               DO jj=1, jpj
540                  DO jk=1,jpk
541                    zdiag_var=zdiag_var+tmask(ji,jj,jk)*trn(ji,jj,jk,jn)*     &
542                               tmask_i(ji,jj)* e1t(ji,jj) * e2t(ji,jj) * fse3t(ji,jj,jk) 
543
544                  END DO
545               END DO
546            END DO
547
548            zdiag_varmin=MINVAL(trn(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)))
549            zdiag_varmax=MAXVAL(trn(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)))
550
551            IF( lk_mpp ) THEN
552               CALL mpp_min(zdiag_varmin)      ! min over the global domain 
553               CALL mpp_max(zdiag_varmax)      ! max over the global domain 
554               CALL mpp_sum(zdiag_var)         ! sum over the global domain 
555            END IF
556
557            zdiag_tot=zdiag_tot+zdiag_var
558            zdiag_var=zdiag_var/areatot
559
560            IF (lwp) WRITE(numout,*) 'MEAN NO ',jn,ctrcnm(jn),' =',zdiag_var,'MIN= '  &
561               ,zdiag_varmin,'MAX= ',zdiag_varmax
562
563         END DO
564
565         zdiag_tot=zdiag_tot
566         zder=((zdiag_tot-trai)/trai)*100._wp
567         IF (lwp) WRITE(numout,*) 'Integral of all tracers over the full domain  =',zdiag_tot 
568         IF (lwp) WRITE(numout,*) 'Drift of the sum of all tracers =',zder, '%' 
569
570         DO jn=1,jptra
571            clname='TRB'//ctrcnm(jn)
572            CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trb(:,:,:,jn))
573         END DO
574
575#if defined key_trc_lobster1
576         clname='SEDB'//ctrcnm(jpdet)
577         clname1='SEDN'//ctrcnm(jpdet)
578         CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpocb(:,:))
579         CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedpocn(:,:))
580#elif defined key_trc_pisces
581         clname='SED'//ctrcnm(jppoc)
582         clname1='SED'//ctrcnm(jpcal)
583         clname2='SED'//ctrcnm(jpsil)
584         CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedcal(:,:))
585         CALL restput(nutwrs,clname2,jpi,jpj,1,0,sedsil(:,:))
586         CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:))
587
588         clname='Silicalim'
589         CALL restput(nutwrs,clname,jpi,jpj,1,0,xksi(:,:))
590#elif defined key_cfc
591         clname='qint'
592         CALL restput(nutwrs,clname,jpi,jpj,jptra,0,qint(:,:,:))
593         clname1='qtr'
594         CALL restput(nutwrs,clname1,jpi,jpj,jptra,0,qtr(:,:,:))
595#endif
596
597
598         CALL restclo(nutwrs)
599
600      ENDIF
601
602   END SUBROUTINE trc_wri
603
604#endif
605
606#else
607   !!======================================================================
608   !!  Empty module : No passive tracer
609   !!======================================================================
610CONTAINS
611
612   SUBROUTINE trc_rst
613      !! no passive tracers
614   END SUBROUTINE trc_rst
615
616   SUBROUTINE trc_wri(kt)
617      !! no passive tracers
618      INTEGER, INTENT ( in ) :: kt
619      WRITE(*,*) 'trc_wri: You should not have seen this print! error?', kt
620   END SUBROUTINE trc_wri
621   
622#endif
623   
624END MODULE trcrst
Note: See TracBrowser for help on using the repository browser.