Changeset 10963 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/TOP/trcrst.F90
- Timestamp:
- 2019-05-10T16:15:43+02:00 (5 years ago)
- 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 94 94 END SUBROUTINE trc_rst_opn 95 95 96 SUBROUTINE trc_rst_read 96 SUBROUTINE trc_rst_read( Kbb, Kmm ) 97 97 !!---------------------------------------------------------------------- 98 98 !! *** trc_rst_opn *** … … 100 100 !! ** purpose : read passive tracer fields in restart files 101 101 !!---------------------------------------------------------------------- 102 INTEGER, INTENT( in ) :: Kbb, Kmm ! time level indices 102 103 INTEGER :: jn 103 104 … … 110 111 ! READ prognostic variables and computes diagnostic variable 111 112 DO jn = 1, jptra 112 CALL iom_get( numrtr, jpdom_autoglo, 'TRN'//ctrcnm(jn), tr n(:,:,:,jn) )113 END DO 114 115 DO jn = 1, jptra 116 CALL iom_get( numrtr, jpdom_autoglo, 'TRB'//ctrcnm(jn), tr b(:,:,:,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) ) 117 118 END DO 118 119 ! … … 121 122 END SUBROUTINE trc_rst_read 122 123 123 SUBROUTINE trc_rst_wri( kt )124 SUBROUTINE trc_rst_wri( kt, Kbb, Kmm, Krhs ) 124 125 !!---------------------------------------------------------------------- 125 126 !! *** trc_rst_wri *** … … 127 128 !! ** purpose : write passive tracer fields in restart files 128 129 !!---------------------------------------------------------------------- 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 130 132 !! 131 133 INTEGER :: jn … … 136 138 ! -------------------- 137 139 DO jn = 1, jptra 138 CALL iom_rstput( kt, nitrst, numrtw, 'TRN'//ctrcnm(jn), tr n(:,:,:,jn) )139 END DO 140 141 DO jn = 1, jptra 142 CALL iom_rstput( kt, nitrst, numrtw, 'TRB'//ctrcnm(jn), tr b(:,:,:,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) ) 143 145 END DO 144 146 ! … … 146 148 147 149 IF( kt == nitrst ) THEN 148 CALL trc_rst_stat ! statistics150 CALL trc_rst_stat( Kmm, Krhs ) ! statistics 149 151 CALL iom_close( numrtw ) ! close the restart file (only at last time step) 150 152 #if ! defined key_trdmxl_trc … … 297 299 298 300 299 SUBROUTINE trc_rst_stat 301 SUBROUTINE trc_rst_stat( Kmm, Krhs ) 300 302 !!---------------------------------------------------------------------- 301 303 !! *** trc_rst_stat *** … … 303 305 !! ** purpose : Compute tracers statistics 304 306 !!---------------------------------------------------------------------- 307 INTEGER, INTENT( in ) :: Kmm, Krhs ! time level indices 305 308 INTEGER :: jk, jn 306 309 REAL(wp) :: ztraf, zmin, zmax, zmean, zdrift … … 315 318 ! 316 319 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', tr n(:,:,:,jn) * zvol(:,:,:) )322 zmin = MINVAL( tr n(:,:,:,jn), mask= ((tmask*SPREAD(tmask_i,DIM=3,NCOPIES=jpk).NE.0.)) )323 zmax = MAXVAL( tr n(:,:,:,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.)) ) 324 327 IF( lk_mpp ) THEN 325 328 CALL mpp_min( 'trcrst', zmin ) ! min over the global domain … … 341 344 !!---------------------------------------------------------------------- 342 345 CONTAINS 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 344 348 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 347 352 WRITE(*,*) 'trc_rst_wri: You should not have seen this print! error?', kt 348 353 END SUBROUTINE trc_rst_wri
Note: See TracChangeset
for help on using the changeset viewer.