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 10963 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcrst.F90 – NEMO

Ignore:
Timestamp:
2019-05-10T16:15:43+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TOP routines in top-level TOP directory and all knock on effects of these conversions. SETTE tested.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcrst.F90

    r10425 r10963  
    9494   END SUBROUTINE trc_rst_opn 
    9595 
    96    SUBROUTINE trc_rst_read 
     96   SUBROUTINE trc_rst_read( Kbb, Kmm ) 
    9797      !!---------------------------------------------------------------------- 
    9898      !!                    ***  trc_rst_opn  *** 
     
    100100      !! ** purpose  :   read passive tracer fields in restart files 
    101101      !!---------------------------------------------------------------------- 
     102      INTEGER, INTENT( in ) ::   Kbb, Kmm  ! time level indices 
    102103      INTEGER  ::  jn      
    103104 
     
    110111      ! READ prognostic variables and computes diagnostic variable 
    111112      DO jn = 1, jptra 
    112          CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), trn(:,:,:,jn) ) 
    113       END DO 
    114  
    115       DO jn = 1, jptra 
    116          CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), trb(:,:,:,jn) ) 
     113         CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm) ) 
     114      END DO 
     115 
     116      DO jn = 1, jptra 
     117         CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) 
    117118      END DO 
    118119      ! 
     
    121122   END SUBROUTINE trc_rst_read 
    122123 
    123    SUBROUTINE trc_rst_wri( kt ) 
     124   SUBROUTINE trc_rst_wri( kt, Kbb, Kmm, Krhs ) 
    124125      !!---------------------------------------------------------------------- 
    125126      !!                    ***  trc_rst_wri  *** 
     
    127128      !! ** purpose  :   write passive tracer fields in restart files 
    128129      !!---------------------------------------------------------------------- 
    129       INTEGER, INTENT( in ) ::   kt    ! ocean time-step index 
     130      INTEGER, INTENT( in ) ::   kt              ! ocean time-step index 
     131      INTEGER, INTENT( in ) ::   Kbb, Kmm, Krhs  ! time level indices 
    130132      !! 
    131133      INTEGER  :: jn 
     
    136138      ! --------------------  
    137139      DO jn = 1, jptra 
    138          CALL iom_rstput( kt, nitrst, numrtw, 'TRN'//ctrcnm(jn), trn(:,:,:,jn) ) 
    139       END DO 
    140  
    141       DO jn = 1, jptra 
    142          CALL iom_rstput( kt, nitrst, numrtw, 'TRB'//ctrcnm(jn), trb(:,:,:,jn) ) 
     140         CALL iom_rstput( kt, nitrst, numrtw, 'TRN'//ctrcnm(jn), tr(:,:,:,jn,Kmm) ) 
     141      END DO 
     142 
     143      DO jn = 1, jptra 
     144         CALL iom_rstput( kt, nitrst, numrtw, 'TRB'//ctrcnm(jn), tr(:,:,:,jn,Kbb) ) 
    143145      END DO 
    144146      ! 
     
    146148     
    147149      IF( kt == nitrst ) THEN 
    148           CALL trc_rst_stat            ! statistics 
     150          CALL trc_rst_stat( Kmm, Krhs )             ! statistics 
    149151          CALL iom_close( numrtw )     ! close the restart file (only at last time step) 
    150152#if ! defined key_trdmxl_trc 
     
    297299 
    298300 
    299    SUBROUTINE trc_rst_stat 
     301   SUBROUTINE trc_rst_stat( Kmm, Krhs ) 
    300302      !!---------------------------------------------------------------------- 
    301303      !!                    ***  trc_rst_stat  *** 
     
    303305      !! ** purpose  :   Compute tracers statistics 
    304306      !!---------------------------------------------------------------------- 
     307      INTEGER, INTENT( in ) ::   Kmm, Krhs  ! time level indices 
    305308      INTEGER  :: jk, jn 
    306309      REAL(wp) :: ztraf, zmin, zmax, zmean, zdrift 
     
    315318      ! 
    316319      DO jk = 1, jpk 
    317          zvol(:,:,jk) = e1e2t(:,:) * e3t_a(:,:,jk) * tmask(:,:,jk) 
    318       END DO 
    319       ! 
    320       DO jn = 1, jptra 
    321          ztraf = glob_sum( 'trcrst', trn(:,:,:,jn) * zvol(:,:,:) ) 
    322          zmin  = MINVAL( trn(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) ) 
    323          zmax  = MAXVAL( trn(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) ) 
     320         zvol(:,:,jk) = e1e2t(:,:) * e3t(:,:,jk,Krhs) * tmask(:,:,jk) 
     321      END DO 
     322      ! 
     323      DO jn = 1, jptra 
     324         ztraf = glob_sum( 'trcrst', tr(:,:,:,jn,Kmm) * zvol(:,:,:) ) 
     325         zmin  = MINVAL( tr(:,:,:,jn,Kmm), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) ) 
     326         zmax  = MAXVAL( tr(:,:,:,jn,Kmm), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) ) 
    324327         IF( lk_mpp ) THEN 
    325328            CALL mpp_min( 'trcrst', zmin )      ! min over the global domain 
     
    341344   !!---------------------------------------------------------------------- 
    342345CONTAINS 
    343    SUBROUTINE trc_rst_read                      ! Empty routines 
     346   SUBROUTINE trc_rst_read( Kbb, Kmm)                      ! Empty routines 
     347      INTEGER, INTENT( in ) :: Kbb, Kmm  ! time level indices 
    344348   END SUBROUTINE trc_rst_read 
    345    SUBROUTINE trc_rst_wri( kt ) 
    346       INTEGER, INTENT ( in ) :: kt 
     349   SUBROUTINE trc_rst_wri( kt, Kbb, Kmm, Krhs ) 
     350      INTEGER, INTENT( in ) :: kt 
     351      INTEGER, INTENT( in ) :: Kbb, Kmm, Krhs  ! time level indices 
    347352      WRITE(*,*) 'trc_rst_wri: You should not have seen this print! error?', kt 
    348353   END SUBROUTINE trc_rst_wri    
Note: See TracChangeset for help on using the changeset viewer.