- Timestamp:
- 2018-11-13T18:21:16+01:00 (5 years ago)
- Location:
- branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/IOM
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/IOM/iom.F90
r8308 r10302 44 44 USE ioipsl, ONLY : ju2ymds ! for calendar 45 45 USE crs ! Grid coarsening 46 USE timing 46 47 47 48 IMPLICIT NONE … … 1399 1400 IF ( ln_mskland ) THEN 1400 1401 ! mask land points, keep values on coast line -> specific mask for U, V and W points 1402 1403 1401 1404 SELECT CASE ( cdgrd ) 1402 CASE('T') ; zmask(:,:,:) = tmask(:,:,:) 1403 CASE('U') ; zmask(2:jpim1,:,:) = tmask(2:jpim1,:,:) + tmask(3:jpi,:,:) ; CALL lbc_lnk( zmask, 'U', 1. ) 1404 CASE('V') ; zmask(:,2:jpjm1,:) = tmask(:,2:jpjm1,:) + tmask(:,3:jpj,:) ; CALL lbc_lnk( zmask, 'V', 1. ) 1405 CASE('W') ; zmask(:,:,2:jpk ) = tmask(:,:,1:jpkm1) + tmask(:,:,2:jpk) ; zmask(:,:,1) = tmask(:,:,1) 1406 END SELECT 1405 ! The masks applied here are specifically used to mask out duplicate 1406 ! data points in wrap columns and N-fold rows in order to ensure bit 1407 ! reproducibility of diagnostics which have not undergone an explicit 1408 ! lbc_lnk prior to writing. Such fields are prone to junk values at 1409 ! duplicate points since those points are often excluded from the 1410 ! core field computation process. 1411 CASE('T') 1412 zmask(:,:,:) = tmask_i_diag(:,:,:) 1413 CASE('U') 1414 zmask(:,:,:) = umask_i_diag(:,:,:) 1415 CASE('V') 1416 zmask(:,:,:) = vmask_i_diag(:,:,:) 1417 CASE('W') 1418 zmask(:,:,2:jpk ) = tmask_i_diag(:,:,1:jpkm1) + tmask_i_diag(:,:,2:jpk) 1419 zmask(:,:,1) = tmask_i_diag(:,:,1) 1420 END SELECT 1407 1421 ! 1408 1422 #if ! defined key_xios2 … … 1634 1648 WRITE(cl1,'(i1)') 2 ; CALL iom_set_field_attr('trendT_even' , freq_op=cl1//'ts', freq_offset='0ts') 1635 1649 WRITE(cl1,'(i1)') 2 ; CALL iom_set_field_attr('trendT_odd' , freq_op=cl1//'ts', freq_offset='-1ts') 1650 WRITE(cl1,'(i1)') 2 ; CALL iom_set_field_attr('ptrd_T_even' , freq_op=cl1//'ts', freq_offset='0ts') 1651 WRITE(cl1,'(i1)') 2 ; CALL iom_set_field_attr('ptrd_T_odd' , freq_op=cl1//'ts', freq_offset='-1ts') 1636 1652 WRITE(cl1,'(i1)') nn_fsbc ; CALL iom_set_field_attr('SBC' , freq_op=cl1//'ts', freq_offset='0ts') 1637 1653 WRITE(cl1,'(i1)') nn_fsbc ; CALL iom_set_field_attr('SBC_scalar' , freq_op=cl1//'ts', freq_offset='0ts') … … 1642 1658 f_op%timestep = 2 ; f_of%timestep = 0 ; CALL iom_set_field_attr('trendT_even' , freq_op=f_op, freq_offset=f_of) 1643 1659 f_op%timestep = 2 ; f_of%timestep = -1 ; CALL iom_set_field_attr('trendT_odd' , freq_op=f_op, freq_offset=f_of) 1660 f_op%timestep = 2 ; f_of%timestep = 0 ; CALL iom_set_field_attr('ptrd_T_even' , freq_op=f_op, freq_offset=f_of) 1661 f_op%timestep = 2 ; f_of%timestep = -1 ; CALL iom_set_field_attr('ptrd_T_odd' , freq_op=f_op, freq_offset=f_of) 1644 1662 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC' , freq_op=f_op, freq_offset=f_of) 1645 1663 f_op%timestep = nn_fsbc ; f_of%timestep = 0 ; CALL iom_set_field_attr('SBC_scalar' , freq_op=f_op, freq_offset=f_of) -
branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/IOM/restart.F90
r8046 r10302 26 26 USE divcur ! hor. divergence and curl (div & cur routines) 27 27 USE sbc_oce ! for icesheet freshwater input variables 28 USE timing 28 29 29 30 IMPLICIT NONE … … 134 135 INTEGER, INTENT(in) :: kt ! ocean time-step 135 136 !!---------------------------------------------------------------------- 136 137 IF(nn_timing == 2) CALL timing_start('iom_rstput') 137 138 CALL iom_rstput( kt, nitrst, numrow, 'rdt' , rdt ) ! dynamics time step 138 139 CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) ) ! surface tracer time step … … 168 169 ENDIF 169 170 ENDIF 171 IF(nn_timing == 2) CALL timing_stop('iom_rstput') 170 172 171 173 IF( kt == nitrst ) THEN … … 237 239 238 240 ! Check dynamics and tracer time-step consistency and force Euler restart if changed 241 IF(nn_timing == 2) CALL timing_start('iom_rstget') 239 242 IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 ) THEN 240 243 CALL iom_get( numror, 'rdt', zrdt ) … … 300 303 antarctica_icesheet_timelapsed = 0.0 301 304 ENDIF 302 305 IF(nn_timing == 2) CALL timing_stop('iom_rstget') 303 306 IF( neuler == 0 ) THEN ! Euler restart (neuler=0) 304 307 tsb (:,:,:,:) = tsn (:,:,:,:) ! all before fields set to now values
Note: See TracChangeset
for help on using the changeset viewer.