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 10302 for branches/UKMO/dev_r5518_GO6_package_FOAMv14/NEMOGCM/NEMO/OPA_SRC/IOM – NEMO

Ignore:
Timestamp:
2018-11-13T18:21:16+01:00 (5 years ago)
Author:
dford
Message:

Merge in revisions 8447:10159 of dev_r5518_GO6_package.

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  
    4444   USE ioipsl, ONLY :  ju2ymds    ! for calendar 
    4545   USE crs             ! Grid coarsening 
     46   USE timing 
    4647 
    4748   IMPLICIT NONE 
     
    13991400      IF ( ln_mskland ) THEN 
    14001401         ! mask land points, keep values on coast line -> specific mask for U, V and W points 
     1402 
     1403 
    14011404         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 
    14071421         ! 
    14081422#if ! defined key_xios2 
     
    16341648      WRITE(cl1,'(i1)')        2   ;   CALL iom_set_field_attr('trendT_even'      , freq_op=cl1//'ts', freq_offset='0ts') 
    16351649      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') 
    16361652      WRITE(cl1,'(i1)')  nn_fsbc   ;   CALL iom_set_field_attr('SBC'             , freq_op=cl1//'ts', freq_offset='0ts') 
    16371653      WRITE(cl1,'(i1)')  nn_fsbc   ;   CALL iom_set_field_attr('SBC_scalar'      , freq_op=cl1//'ts', freq_offset='0ts') 
     
    16421658      f_op%timestep = 2        ;  f_of%timestep = 0  ; CALL iom_set_field_attr('trendT_even'      , freq_op=f_op, freq_offset=f_of) 
    16431659      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) 
    16441662      f_op%timestep = nn_fsbc  ;  f_of%timestep = 0  ; CALL iom_set_field_attr('SBC'             , freq_op=f_op, freq_offset=f_of) 
    16451663      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  
    2626   USE divcur          ! hor. divergence and curl      (div & cur routines) 
    2727   USE sbc_oce         ! for icesheet freshwater input variables 
     28   USE timing 
    2829 
    2930   IMPLICIT NONE 
     
    134135      INTEGER, INTENT(in) ::   kt   ! ocean time-step 
    135136      !!---------------------------------------------------------------------- 
    136  
     137                     IF(nn_timing == 2)  CALL timing_start('iom_rstput') 
    137138                     CALL iom_rstput( kt, nitrst, numrow, 'rdt'    , rdt       )   ! dynamics time step 
    138139                     CALL iom_rstput( kt, nitrst, numrow, 'rdttra1', rdttra(1) )   ! surface tracer time step 
     
    168169                     ENDIF 
    169170                     ENDIF 
     171                     IF(nn_timing == 2)  CALL timing_stop('iom_rstput') 
    170172 
    171173      IF( kt == nitrst ) THEN 
     
    237239 
    238240      ! Check dynamics and tracer time-step consistency and force Euler restart if changed 
     241      IF(nn_timing == 2)  CALL timing_start('iom_rstget') 
    239242      IF( iom_varid( numror, 'rdt', ldstop = .FALSE. ) > 0 )   THEN 
    240243         CALL iom_get( numror, 'rdt', zrdt ) 
     
    300303         antarctica_icesheet_timelapsed = 0.0 
    301304      ENDIF 
    302  
     305      IF(nn_timing == 2)  CALL timing_stop('iom_rstget') 
    303306      IF( neuler == 0 ) THEN                                  ! Euler restart (neuler=0) 
    304307         tsb  (:,:,:,:) = tsn  (:,:,:,:)                             ! all before fields set to now values 
Note: See TracChangeset for help on using the changeset viewer.