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

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

nemo_v1_bugfix_073:CE:well used of iom module to read variables in CFC's restart files

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