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.
Changeset 335 for trunk/NEMO/TOP_SRC/trcrst.F90 – NEMO

Ignore:
Timestamp:
2005-11-14T13:08:42+01:00 (18 years ago)
Author:
opalod
Message:

nemo_v1_update_023 : CE + RB + CT : new evolution of modules

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/TOP_SRC/trcrst.F90

    r274 r335  
    11MODULE trcrst 
    2    !!=========================================================================================== 
     2   !!====================================================================== 
    33   !! 
    44   !!                       *** MODULE trcrst *** 
     
    66   !!   Read the restart files for passive tracers 
    77   !! 
    8    !!=========================================================================================== 
     8   !!====================================================================== 
    99   !!  TOP 1.0,  LOCEAN-IPSL (2005) 
    10    !! $Header$ 
    11    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    1210   !!---------------------------------------------------------------------- 
    13       !!---------------------------------------------------------------------- 
    14       !! * Modules used 
    15       !! ============== 
    16       USE oce_trc 
    17       USE trc 
    18       USE sms 
    19       USE trctrp_lec    
    20                                                                                                                              
    21       IMPLICIT NONE 
    22       PRIVATE 
    23  
     11#if defined key_passivetrc    
     12   !!---------------------------------------------------------------------- 
     13   !! * Modules used 
     14   !! ============== 
     15   USE oce_trc 
     16   USE trc 
     17   USE sms 
     18   USE trctrp_lec    
     19    
     20   IMPLICIT NONE 
     21   PRIVATE 
     22    
    2423   !! * Accessibility 
    2524   PUBLIC trc_rst 
    2625   PUBLIC trc_wri 
    27  
     26    
    2827   !! * Module variables 
    2928   CHARACTER (len=48) ::   & 
    3029      trestart = 'initial.trc.nc'   ! restart file name 
    31  
     30    
    3231CONTAINS 
    3332 
     
    3736   !!---------------------------------------------------------------------- 
    3837#include "trcrst_fdir.h90" 
    39  
    40 #else 
    41     !!  USE ioipsl 
    42 #if defined key_passivetrc     
    43  
    44 SUBROUTINE trc_rst  
    45    !!=========================================================================================== 
    46    !! 
    47    !!                       ROUTINE trc_rst 
    48    !!                     ******************* 
    49    !! 
    50    !!  PURPOSE : 
    51    !!  --------- 
    52    !!     READ files for restart for passive tracer 
    53    !! 
    54    !!   METHOD : 
    55    !!   ------- 
    56    !!      READ the previous fields on the FILE nutrst 
    57    !!      the first record indicates previous characterics 
    58    !!      after control with the present run, we READ : 
    59    !!      - prognostic variables on the second and more record 
    60    !! 
    61    !!   History: 
    62    !!   -------- 
    63    !!  original  : 96-11 
    64    !!  00-05 (A. Estublier) TVD Limiter Scheme key_trc_tvd  
    65    !!  00-12 (O. Aumont, E. Kestenare) read restart file for sediments  
    66    !!  01-05 (O. Aumont, E. Kestenare) read restart file for calcite and silicate sediments  
    67    !!  05-03 (O. Aumont and A. El Moussaoui) F90            
    68    !!------------------------------------------------------------------------ 
    69    !! * Modules used 
     38    
     39#else  
     40 
     41   SUBROUTINE trc_rst  
     42      !!=========================================================================================== 
     43      !! 
     44      !!                       ROUTINE trc_rst 
     45      !!                     ******************* 
     46      !! 
     47      !!  PURPOSE : 
     48      !!  --------- 
     49      !!     READ files for restart for passive tracer 
     50      !! 
     51      !!   METHOD : 
     52      !!   ------- 
     53      !!      READ the previous fields on the FILE nutrst 
     54      !!      the first record indicates previous characterics 
     55      !!      after control with the present run, we READ : 
     56      !!      - prognostic variables on the second and more record 
     57      !! 
     58      !!   History: 
     59      !!   -------- 
     60      !!  original  : 96-11 
     61      !!  00-05 (A. Estublier) TVD Limiter Scheme key_trc_tvd  
     62      !!  00-12 (O. Aumont, E. Kestenare) read restart file for sediments  
     63      !!  01-05 (O. Aumont, E. Kestenare) read restart file for calcite and silicate sediments  
     64      !!  05-03 (O. Aumont and A. El Moussaoui) F90            
     65      !!------------------------------------------------------------------------ 
     66      !! * Modules used 
    7067      USE ioipsl 
    7168 
    7269 
    73    !! local declarations 
    74    !! ================== 
    75     LOGICAL ::  llog       !!! 
    76     CHARACTER (len=32) :: clname1,clname2 
    77     CHARACTER (len=32) :: clname = 'restart.trc' 
    78     CHARACTER (len=12) :: clvnames(80)   
    79  
    80     INTEGER :: ino1,jn,iarak0,iarak1,          & 
    81                ji, jj, jk,                   & 
    82                itime, ibvar 
    83     REAL(wp) :: caralk,bicarb,zdt,        &      
    84                 zdate0 
    85     REAL(wp) ::   zdept(jpk), zlamt(jpi,jpj), zphit(jpi,jpj) 
    86  
    87     REAL(wp), DIMENSION(3) :: zinfo 
    88  
    89     !!--------------------------------------------------------------------- 
    90     !!  OPA.9 03-2005   
    91     !!--------------------------------------------------------------------- 
    92     !! 0. initialisations 
    93     !!------------------ 
     70      !! local declarations 
     71      !! ================== 
     72      LOGICAL ::  llog       !!! 
     73      CHARACTER (len=32) :: clname1,clname2 
     74      CHARACTER (len=32) :: clname = 'restart.trc' 
     75      CHARACTER (len=12) :: clvnames(80)   
     76 
     77      INTEGER :: ino1,jn,iarak0,iarak1,          & 
     78         ji, jj, jk,                   & 
     79         itime, ibvar 
     80      REAL(wp) :: caralk,bicarb,zdt,        &      
     81         zdate0 
     82      REAL(wp) ::   zdept(jpk), zlamt(jpi,jpj), zphit(jpi,jpj) 
     83 
     84      REAL(wp), DIMENSION(3) :: zinfo 
     85 
     86      !!--------------------------------------------------------------------- 
     87      !!  OPA.9 03-2005   
     88      !!--------------------------------------------------------------------- 
     89      !! 0. initialisations 
     90      !!------------------ 
    9491 
    9592 
    9693      IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN 
    97           iarak0 = 1 
     94         iarak0 = 1 
    9895      ELSE 
    99           iarak0=0 
     96         iarak0=0 
    10097      ENDIF 
    10198 
     
    108105      IF(lwp) WRITE(numout,*) '   with the time nit000 : ',nit000 
    109106      IF(lwp) THEN 
    110           IF(iarak0.eq.1) then 
    111               WRITE(numout,*) '   and before fields for Arakawa sheme ' 
    112           ENDIF  
    113           WRITE(numout,*) ' ' 
     107         IF(iarak0.eq.1) then 
     108            WRITE(numout,*) '   and before fields for Arakawa sheme ' 
     109         ENDIF 
     110         WRITE(numout,*) ' ' 
    114111      ENDIF 
    115112 
     
    133130 
    134131 
    135     !! 1. READ nutrst 
    136     !! -------------- 
    137     !! ... first information 
    138     !! --------------------- 
     132      !! 1. READ nutrst 
     133      !! -------------- 
     134      !! ... first information 
     135      !! --------------------- 
    139136      itime=0 
    140137      llog=.false.           !!! 
     
    143140      zdept(:)   = 0.e0 
    144141      CALL restini(clname,jpi,jpj,zlamt,zphit,jpk,zdept,clname         &  
    145        &           ,itime,zdate0,zdt,nutrst) 
     142         &           ,itime,zdate0,zdt,nutrst) 
    146143 
    147144      CALL ioget_vname(nutrst, ibvar, clvnames) 
     
    155152      IF(lwp) WRITE(numout,*) '   with the time it : ',nint(zinfo(2)) 
    156153      IF(lwp) THEN 
    157           IF(iarak1.eq.1) then 
    158               WRITE(numout,*) '   and before fields for Arakawa sheme ' 
    159           ENDIF  
     154         IF(iarak1.eq.1) then 
     155            WRITE(numout,*) '   and before fields for Arakawa sheme ' 
     156         ENDIF 
    160157      ENDIF 
    161158      IF(lwp) WRITE(numout,*) '   number of variables   : ', ibvar 
     
    164161      IF(lwp) WRITE(numout,*) ' ' 
    165162 
    166    !! 1.2 control of date 
    167    !! ------------------- 
     163      !! 1.2 control of date 
     164      !! ------------------- 
    168165 
    169166      IF( nit000- NINT( zinfo(2) ) /= 1 .AND. nrsttr /= 0 ) THEN 
    170           IF(lwp) THEN 
    171               WRITE(numout,*) ' ===>>>> : problem with nit000 for the',    &   
    172                   ' passive tracer restart' 
    173               WRITE(numout,*) ' =======                              ',    &     
    174                   ' ======================' 
    175               WRITE(numout,*) ' we stop. verify the FILE' 
    176               WRITE(numout,*) ' or rerun with the value  0 for the' 
    177               WRITE(numout,*) ' control of time PARAMETER   nrstdt' 
    178               WRITE(numout,*) ' ' 
    179           ENDIF 
    180           STOP 'trc_rst'       !! 
    181       ENDIF 
    182  
    183     !! 1.3 Control of the sheme 
    184     !! ------------------------ 
     167         IF(lwp) THEN 
     168            WRITE(numout,*) ' ===>>>> : problem with nit000 for the',    &   
     169               ' passive tracer restart' 
     170            WRITE(numout,*) ' =======                              ',    &     
     171               ' ======================' 
     172            WRITE(numout,*) ' we stop. verify the FILE' 
     173            WRITE(numout,*) ' or rerun with the value  0 for the' 
     174            WRITE(numout,*) ' control of time PARAMETER   nrstdt' 
     175            WRITE(numout,*) ' ' 
     176         ENDIF 
     177         STOP 'trc_rst'       !! 
     178      ENDIF 
     179 
     180      !! 1.3 Control of the sheme 
     181      !! ------------------------ 
    185182 
    186183      IF(iarak0.ne.iarak1) THEN 
    187           IF(lwp) THEN 
    188               WRITE(numout,*) ' ===>>>> : problem with the',       &    
    189                  ' passive tracer restart file' 
    190               WRITE(numout,*) ' =======                              ',        &  
    191                   ' ===========================' 
    192               WRITE(numout,*) ' we stop. verify the FILE' 
    193               WRITE(numout,*) ' before field required IF 1=',iarak0 
    194               WRITE(numout,*) ' before field present in file IF 1=',           &  
    195                  iarak1 
    196               WRITE(numout,*) ' ' 
    197           ENDIF 
    198           STOP 'trc_rst'       !!!!!    AVERIFIER AU NIV F90' 
    199       ENDIF 
    200  
    201  
    202     !! ... READ prognostic variables and computes diagnostic variable 
    203     !! --------------------------------------------------------------- 
    204  
    205        DO jn=1,jptra 
     184         IF(lwp) THEN 
     185            WRITE(numout,*) ' ===>>>> : problem with the',       &    
     186               ' passive tracer restart file' 
     187            WRITE(numout,*) ' =======                              ',        &  
     188               ' ===========================' 
     189            WRITE(numout,*) ' we stop. verify the FILE' 
     190            WRITE(numout,*) ' before field required IF 1=',iarak0 
     191            WRITE(numout,*) ' before field present in file IF 1=',           &  
     192               iarak1 
     193            WRITE(numout,*) ' ' 
     194         ENDIF 
     195         STOP 'trc_rst'       !!!!!    AVERIFIER AU NIV F90' 
     196      ENDIF 
     197 
     198 
     199      !! ... READ prognostic variables and computes diagnostic variable 
     200      !! --------------------------------------------------------------- 
     201 
     202      DO jn=1,jptra 
    206203         clname='TRN'//ctrcnm(jn) 
    207204         CALL restget(nutrst,clname,jpi,jpj,jpk,0,llog,trn(:,:,:,jn)) 
    208        END DO 
    209  
    210        DO jn=1,jptra 
     205      END DO 
     206 
     207      DO jn=1,jptra 
    211208         clname='TRB'//ctrcnm(jn) 
    212209         CALL restget(nutrst,clname,jpi,jpj,jpk,0,llog,trb(:,:,:,jn)) 
    213        END DO 
    214  
    215 #if defined key_trc_hamocc3 
    216          clname='SED'//ctrcnm(jppoc) 
    217          clname1='SED'//ctrcnm(jpcal) 
    218          clname2='SED'//ctrcnm(jpsil) 
    219          CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedcal(:,:)) 
    220          CALL restget(nutrst,clname2,jpi,jpj,1,0,llog,sedsil(:,:)) 
    221          CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpoc(:,:)) 
    222 #elif defined key_trc_npzd || defined key_trc_lobster1 
    223          clname='SED'//ctrcnm(jpdet) 
    224          CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpoc(:,:)) 
     210      END DO 
     211 
     212 
     213#if defined key_trc_lobster1 
     214      clname='SEDB'//ctrcnm(jpdet) 
     215      clname1='SEDN'//ctrcnm(jpdet) 
     216      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpocb(:,:)) 
     217      CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedpocn(:,:)) 
    225218#elif defined key_trc_pisces 
    226  
    227          clname='Silicalim' 
    228          CALL restget(nutrst,clname,jpi,jpj,1,0,llog,xksi) 
    229          xksimax=xksi 
    230  
    231          clname='SED'//ctrcnm(jppoc) 
    232          clname1='SED'//ctrcnm(jpcal) 
    233          clname2='SED'//ctrcnm(jpsil) 
    234          CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedcal(:,:)) 
    235          CALL restget(nutrst,clname2,jpi,jpj,1,0,llog,sedsil(:,:)) 
    236          CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpoc(:,:)) 
     219      clname='Silicalim' 
     220      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,xksi) 
     221      xksimax=xksi 
     222 
     223      clname='SED'//ctrcnm(jppoc) 
     224      clname1='SED'//ctrcnm(jpcal) 
     225      clname2='SED'//ctrcnm(jpsil) 
     226      CALL restget(nutrst,clname1,jpi,jpj,1,0,llog,sedcal(:,:)) 
     227      CALL restget(nutrst,clname2,jpi,jpj,1,0,llog,sedsil(:,:)) 
     228      CALL restget(nutrst,clname,jpi,jpj,1,0,llog,sedpoc(:,:)) 
     229 
     230#elif defined key_cfc 
     231      clname='qint' 
     232      CALL restget(nutrst,clname,jpi,jpj,jptra,0,llog,qint(:,:,:)) 
     233      clname1='qtr' 
     234      CALL restget(nutrst,clname1,jpi,jpj,jptra,0,llog,qtr(:,:,:))          
    237235#endif 
    238236 
    239 #if defined key_trc_hamocc3 || defined key_trc_pisces  
    240  
    241  
    242     !!  Initialization of chemical variables of the carbon cycle 
    243     !!  -------------------------------------------------------- 
    244  
    245         DO jk = 1,jpk 
    246           DO jj = 1,jpj 
     237#if defined key_trc_pisces  
     238      !!  Initialization of chemical variables of the carbon cycle 
     239      !!  -------------------------------------------------------- 
     240 
     241      DO jk = 1,jpk 
     242         DO jj = 1,jpj 
    247243            DO ji = 1,jpi 
    248               caralk = trn(ji,jj,jk,jptal)-       & 
    249               &        borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) 
    250               co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)   & 
    251               &        +(1.-tmask(ji,jj,jk))*.5e-3 
    252               bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) 
    253               hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))     & 
    254               &  *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 
    255               h2co3(ji,jj) = 1.e-5 
     244               caralk = trn(ji,jj,jk,jptal)-       & 
     245                  &        borat(ji,jj,jk)/(1.+1.E-8/(rtrn+akb3(ji,jj,jk))) 
     246               co3(ji,jj,jk)=(caralk-trn(ji,jj,jk,jpdic))*tmask(ji,jj,jk)   & 
     247                  &        +(1.-tmask(ji,jj,jk))*.5e-3 
     248               bicarb = (2.*trn(ji,jj,jk,jpdic)-caralk) 
     249               hi(ji,jj,jk) = (ak23(ji,jj,jk)*bicarb/co3(ji,jj,jk))     & 
     250                  &  *tmask(ji,jj,jk)+(1.-tmask(ji,jj,jk))*1.e-9 
     251               h2co3(ji,jj) = 1.e-5 
    256252            ENDDO 
    257           ENDDO 
    258         ENDDO 
     253         ENDDO 
     254      ENDDO 
    259255#endif 
    260256 
    261 END SUBROUTINE trc_rst 
    262  
    263 SUBROUTINE trc_wri(kt) 
    264    !! ================================================================================== 
    265    !! 
    266    !!                       ROUTINE trc_wri 
    267    !!                     ****************** 
    268    !! 
    269    !!  PURPOSE : 
    270    !!  --------- 
    271    !!     WRITE restart fields in nutwrs 
    272    !!   METHOD : 
    273    !!   ------- 
    274    !! 
    275    !!   nutwrs FILE: 
    276    !!   each nstock time step , SAVE fields which are necessary for 
    277    !!   passive tracer restart 
    278    !! 
    279    !! 
    280    !!   INPUT : 
    281    !!   ----- 
    282    !!      argument 
    283    !!              kt              : time step 
    284    !!      COMMON 
    285    !!            /cottrc/          : passive tracers fields (before,now 
    286    !!                                  ,after) 
    287    !! 
    288    !!   OUTPUT : 
    289    !!   ------ 
    290    !!      FILE 
    291    !!           nutwrs          : standard restart fields OUTPUT 
    292    !! 
    293    !!   WORKSPACE : 
    294    !!   --------- 
    295    !!      ji,jj,jk,jl,ino0,it0,iarak0 
    296    !! 
    297    !!   History: 
    298    !!   -------- 
    299    !!      original : 96-12 
    300    !!      addition : 99-12 (M.-A. Foujols) NetCDF FORMAT with ioipsl 
    301    !!      additions : 00-05 (A. Estublier) 
    302    !!                  TVD Limiter Scheme : key_trc_tvd 
    303    !!      additions : 01-01 (M.A Foujols, E. Kestenare) bug fix: restclo 
    304    !!      additions : 01-01 (O. Aumont, E. Kestenare) 
    305    !!                  write restart file for sediments 
    306    !!      additions : 01-05 (O. Aumont, E. Kestenare) 
    307    !!                  write restart file for calcite and silicate sediments 
    308    !!   05-03 (O. Aumont and A. El Moussaoui) F90 
    309    !!========================================================================================! 
     257   END SUBROUTINE trc_rst 
     258 
     259   SUBROUTINE trc_wri(kt) 
     260      !! ================================================================================== 
     261      !! 
     262      !!                       ROUTINE trc_wri 
     263      !!                     ****************** 
     264      !! 
     265      !!  PURPOSE : 
     266      !!  --------- 
     267      !!     WRITE restart fields in nutwrs 
     268      !!   METHOD : 
     269      !!   ------- 
     270      !! 
     271      !!   nutwrs FILE: 
     272      !!   each nstock time step , SAVE fields which are necessary for 
     273      !!   passive tracer restart 
     274      !! 
     275      !! 
     276      !!   INPUT : 
     277      !!   ----- 
     278      !!      argument 
     279      !!              kt              : time step 
     280      !!      COMMON 
     281      !!            /cottrc/          : passive tracers fields (before,now 
     282      !!                                  ,after) 
     283      !! 
     284      !!   OUTPUT : 
     285      !!   ------ 
     286      !!      FILE 
     287      !!           nutwrs          : standard restart fields OUTPUT 
     288      !! 
     289      !!   WORKSPACE : 
     290      !!   --------- 
     291      !!      ji,jj,jk,jl,ino0,it0,iarak0 
     292      !! 
     293      !!   History: 
     294      !!   -------- 
     295      !!      original : 96-12 
     296      !!      addition : 99-12 (M.-A. Foujols) NetCDF FORMAT with ioipsl 
     297      !!      additions : 00-05 (A. Estublier) 
     298      !!                  TVD Limiter Scheme : key_trc_tvd 
     299      !!      additions : 01-01 (M.A Foujols, E. Kestenare) bug fix: restclo 
     300      !!      additions : 01-01 (O. Aumont, E. Kestenare) 
     301      !!                  write restart file for sediments 
     302      !!      additions : 01-05 (O. Aumont, E. Kestenare) 
     303      !!                  write restart file for calcite and silicate sediments 
     304      !!   05-03 (O. Aumont and A. El Moussaoui) F90 
     305      !!========================================================================================! 
    310306      !! * Modules used 
    311307      USE ioipsl 
    312308 
    313      !! * Arguments 
     309      !! * Arguments 
    314310      !! ----------- 
    315311      INTEGER, INTENT( in ) :: kt 
     
    322318 
    323319      INTEGER :: jn,   & 
    324                  ino0,it0,iarak0,     & 
    325                  ic,jc,ji,jj,jk,      & 
    326                  itime 
     320         ino0,it0,iarak0,     & 
     321         ic,jc,ji,jj,jk,      & 
     322         itime 
    327323 
    328324      REAL(wp) :: zdate0, zinfo(3),zdiag_var,    & 
    329                   zdiag_varmin, zdiag_varmax 
    330  
    331  
    332    !! 1. OUTPUT of restart fields (nutwrs) 
    333    !! --------------------------- 
     325         zdiag_varmin, zdiag_varmax 
     326 
     327 
     328      !! 1. OUTPUT of restart fields (nutwrs) 
     329      !! --------------------------- 
    334330 
    335331      IF( kt == nit000 ) THEN 
     
    342338      IF( MOD(kt,nstock) == 0 .OR. kt == nitend ) THEN 
    343339 
    344    !! 0. initialisations 
    345    !! ------------------ 
     340         !! 0. initialisations 
     341         !! ------------------ 
    346342 
    347343         IF(lwp) WRITE(numout,*) ' ' 
    348344         IF(lwp) WRITE(numout,*) 'trc_wri : write the passive tracer restart file in NetCDF format ',   & 
    349                                               'at it= ',kt,' date= ',ndastp 
     345            'at it= ',kt,' date= ',ndastp 
    350346         IF(lwp) WRITE(numout,*) '~~~~~~~~~' 
    351347 
    352348 
    353           ino0 =no 
    354           it0  =kt 
    355 #if defined key_trc_cen2 || defined key_trc_tvd 
    356           iarak0=1 
    357 #else 
    358           iarak0=0 
    359 #endif 
    360  
    361           zinfo(1)=FLOAT(ino0) 
    362           zinfo(2)=FLOAT(it0) 
    363           zinfo(3)=FLOAT(iarak0) 
    364  
    365    !! 1. WRITE in nutwrs 
    366    !! ------------------ 
    367    !!... first information 
    368  
    369           INQUIRE (FILE=trestart,EXIST=clbon) 
    370           IF(clbon) THEN 
    371               OPEN(UNIT=nutwrs,FILE=trestart,STATUS='old') 
    372               CLOSE(nutwrs,STATUS='delete') 
    373           ENDIF 
    374  
    375           ic=1 
    376           DO jc=1,16 
     349         ino0 =no 
     350         it0  =kt 
     351         IF( ln_trcadv_cen2 .OR. ln_trcadv_tvd ) THEN 
     352            iarak0 = 1 
     353         ELSE 
     354            iarak0=0 
     355         ENDIF 
     356 
     357         zinfo(1)=FLOAT(ino0) 
     358         zinfo(2)=FLOAT(it0) 
     359         zinfo(3)=FLOAT(iarak0) 
     360 
     361         !! 1. WRITE in nutwrs 
     362         !! ------------------ 
     363         !!... first information 
     364 
     365         INQUIRE (FILE=trestart,EXIST=clbon) 
     366         IF(clbon) THEN 
     367            OPEN(UNIT=nutwrs,FILE=trestart,STATUS='old') 
     368            CLOSE(nutwrs,STATUS='delete') 
     369         ENDIF 
     370 
     371         ic=1 
     372         DO jc=1,16 
    377373            IF(cexper(jc:jc) /= ' ') ic = jc 
    378           END DO 
    379           WRITE(cln,'("_",i2.2,i2.2,i2.2,"_restart.trc")') nyear, nmonth, nday 
    380           clname=cexper(1:ic)//cln 
    381           ic=1 
    382           DO jc=1,48 
     374         END DO 
     375         WRITE(cln,'("_",i2.2,i2.2,i2.2,"_restart.trc")') nyear, nmonth, nday 
     376         clname=cexper(1:ic)//cln 
     377         ic=1 
     378         DO jc=1,48 
    383379            IF(clname(jc:jc) /= ' ') ic=jc 
    384           END DO 
    385           trestart=clname(1:ic)//".nc" 
    386           itime=0 
    387           CALL ymds2ju(nyear,nmonth,nday,0.0,zdate0) 
    388           CALL restini('NONE',jpi,jpj,glamt,gphit,jpk,gdept,clname           & 
    389       &        ,itime,zdate0,rdt*nstock,nutwrs) 
    390  
    391           CALL restput(nutwrs,'info',1,1,3,0,zinfo) 
    392  
    393    ! prognostic variables 
    394    ! -------------------- 
     380         END DO 
     381         trestart=clname(1:ic)//".nc" 
     382         itime=0 
     383         CALL ymds2ju(nyear,nmonth,nday,0.0,zdate0) 
     384         CALL restini('NONE',jpi,jpj,glamt,gphit,jpk,gdept,clname           & 
     385            &        ,itime,zdate0,rdt*nstock,nutwrs) 
     386 
     387         CALL restput(nutwrs,'info',1,1,3,0,zinfo) 
     388 
     389         ! prognostic variables 
     390         ! -------------------- 
    395391 
    396392         DO jn=1,jptra 
     
    398394            CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trn(:,:,:,jn)) 
    399395 
    400          zdiag_var=0. 
    401          zdiag_varmin=0. 
    402          zdiag_varmax=0. 
    403          IF (lwp) WRITE(numout,*) '----TRACER STAT----' 
    404  
    405          DO ji=1,jpi 
    406             DO jj=1,jpj 
    407               DO jk=1,jpk 
    408  
    409               zdiag_var=zdiag_var+tmask(ji,jj,jk)*trn(ji,jj,jk,jn) 
    410  
    411               IF (tmask(ji,jj,jk).EQ.1.) THEN 
    412                   IF (zdiag_varmin.GT.trn(ji,jj,jk,jn))        & 
    413                      zdiag_varmin =  trn(ji,jj,jk,jn) 
    414                   IF (zdiag_varmax.LT.trn(ji,jj,jk,jn))        & 
    415                      zdiag_varmax =  trn(ji,jj,jk,jn) 
    416  
    417               ENDIF 
    418  
    419               END DO 
     396            zdiag_var=0. 
     397            zdiag_varmin=0. 
     398            zdiag_varmax=0. 
     399            IF (lwp) WRITE(numout,*) '----TRACER STAT----' 
     400 
     401            DO ji=1,jpi 
     402               DO jj=1,jpj 
     403                  DO jk=1,jpk 
     404 
     405                     zdiag_var=zdiag_var+tmask(ji,jj,jk)*trn(ji,jj,jk,jn) 
     406 
     407                     IF (tmask(ji,jj,jk).EQ.1.) THEN 
     408                        IF (zdiag_varmin.GT.trn(ji,jj,jk,jn))        & 
     409                           zdiag_varmin =  trn(ji,jj,jk,jn) 
     410                        IF (zdiag_varmax.LT.trn(ji,jj,jk,jn))        & 
     411                           zdiag_varmax =  trn(ji,jj,jk,jn) 
     412 
     413                     ENDIF 
     414 
     415                  END DO 
     416               END DO 
    420417            END DO 
     418 
     419 
     420            zdiag_var=zdiag_var/(jpi*jpj*jpk) 
     421 
     422            IF(lwp) WRITE(numout,*) 'MEAN NO ',jn,' =',zdiag_var,'MIN= '  & 
     423               ,zdiag_varmin,'MAX= ',zdiag_varmax 
     424 
    421425         END DO 
    422426 
    423  
    424          zdiag_var=zdiag_var/(jpi*jpj*jpk) 
    425  
    426          IF(lwp) WRITE(numout,*) 'MEAN NO ',jn,' =',zdiag_var,'MIN= '  & 
    427              ,zdiag_varmin,'MAX= ',zdiag_varmax 
    428  
    429          END DO 
    430  
    431           DO jn=1,jptra 
     427         DO jn=1,jptra 
    432428            clname='TRB'//ctrcnm(jn) 
    433429            CALL restput(nutwrs,clname,jpi,jpj,jpk,0,trb(:,:,:,jn)) 
    434           END DO 
    435  
    436 #if defined key_trc_hamocc3 
    437              clname='SED'//ctrcnm(jppoc) 
    438              clname1='SED'//ctrcnm(jpcal) 
    439              clname2='SED'//ctrcnm(jpsil) 
    440              CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedcal(:,:)) 
    441              CALL restput(nutwrs,clname2,jpi,jpj,1,0,sedsil(:,:)) 
    442              CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:)) 
    443 #elif defined key_trc_npzd || defined key_trc_lobster1 
    444              clname='SED'//ctrcnm(jpdet) 
    445              CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:)) 
     430         END DO 
     431 
     432 
     433#if defined key_trc_lobster1 
     434         clname='SEDB'//ctrcnm(jpdet) 
     435         clname1='SEDN'//ctrcnm(jpdet) 
     436         CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpocb(:,:)) 
     437         CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedpocn(:,:)) 
    446438#elif defined key_trc_pisces 
    447              clname='SED'//ctrcnm(jppoc) 
    448              clname1='SED'//ctrcnm(jpcal) 
    449              clname2='SED'//ctrcnm(jpsil) 
    450              CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedcal(:,:)) 
    451              CALL restput(nutwrs,clname2,jpi,jpj,1,0,sedsil(:,:)) 
    452              CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:)) 
    453  
    454              clname='Silicalim' 
    455              CALL restput(nutwrs,clname,jpi,jpj,1,0,xksi(:,:)) 
     439         clname='SED'//ctrcnm(jppoc) 
     440         clname1='SED'//ctrcnm(jpcal) 
     441         clname2='SED'//ctrcnm(jpsil) 
     442         CALL restput(nutwrs,clname1,jpi,jpj,1,0,sedcal(:,:)) 
     443         CALL restput(nutwrs,clname2,jpi,jpj,1,0,sedsil(:,:)) 
     444         CALL restput(nutwrs,clname,jpi,jpj,1,0,sedpoc(:,:)) 
     445 
     446         clname='Silicalim' 
     447         CALL restput(nutwrs,clname,jpi,jpj,1,0,xksi(:,:)) 
     448#elif defined key_cfc 
     449         clname='qint' 
     450         CALL restput(nutwrs,clname,jpi,jpj,jptra,0,qint(:,:,:)) 
     451         clname1='qtr' 
     452         CALL restput(nutwrs,clname1,jpi,jpj,jptra,0,qtr(:,:,:)) 
    456453#endif 
    457454 
    458           CALL restclo(nutwrs) 
    459  
    460       ENDIF 
    461  
    462 END SUBROUTINE trc_wri 
     455 
     456         CALL restclo(nutwrs) 
     457 
     458      ENDIF 
     459 
     460   END SUBROUTINE trc_wri 
     461 
     462#endif 
    463463 
    464464#else 
    465  
    466 SUBROUTINE trc_rst 
    467    !! no passive tracers 
    468 END SUBROUTINE trc_rst 
    469  
    470 SUBROUTINE trc_wri(kt) 
    471      !!! no passive tracers 
    472      INTEGER, INTENT ( in ) :: kt 
     465   !!====================================================================== 
     466   !!  Empty module : No passive tracer 
     467   !!====================================================================== 
     468CONTAINS 
     469 
     470   SUBROUTINE trc_rst 
     471      !! no passive tracers 
     472   END SUBROUTINE trc_rst 
     473 
     474   SUBROUTINE trc_wri(kt) 
     475      !! no passive tracers 
     476      INTEGER, INTENT ( in ) :: kt 
    473477      WRITE(*,*) 'trc_wri: You should not have seen this print! error?', kt 
    474 END SUBROUTINE trc_wri 
    475  
    476 #endif  
    477  
     478   END SUBROUTINE trc_wri 
     479    
    478480#endif 
    479  
    480  
    481 END MODULE trcrst   
     481    
     482END MODULE trcrst 
Note: See TracChangeset for help on using the changeset viewer.