Changeset 9919


Ignore:
Timestamp:
2018-07-10T17:07:05+02:00 (2 years ago)
Author:
smasson
Message:

trunk: avoid potential rounding errors (use nint instead of int)

Location:
NEMO/trunk/src/OCE
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/OCE/CRS/crsdom.F90

    r9667 r9919  
    22462246      
    22472247      zmbk(:,:) = 0.0 
    2248       zmbk(:,:) = REAL( mbathy_crs(:,:), wp ) ;   CALL crs_lbc_lnk(zmbk,'T',1.0)   ;   mbathy_crs(:,:) = INT( zmbk(:,:) ) 
     2248      zmbk(:,:) = REAL( mbathy_crs(:,:), wp ) ;   CALL crs_lbc_lnk(zmbk,'T',1.0)   ;   mbathy_crs(:,:) = NINT( zmbk(:,:) ) 
    22492249 
    22502250 
     
    22662266      ! convert into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk 
    22672267      zmbk(:,:) = 1.e0;     
    2268       zmbk(:,:) = REAL( mbku_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'U',1.0) ; mbku_crs  (:,:) = MAX( INT( zmbk(:,:) ), 1 )  
    2269       zmbk(:,:) = REAL( mbkv_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs  (:,:) = MAX( INT( zmbk(:,:) ), 1 )  
     2268      zmbk(:,:) = REAL( mbku_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'U',1.0) ; mbku_crs  (:,:) = MAX( NINT( zmbk(:,:) ), 1 )  
     2269      zmbk(:,:) = REAL( mbkv_crs(:,:), wp )   ;   CALL crs_lbc_lnk(zmbk,'V',1.0) ; mbkv_crs  (:,:) = MAX( NINT( zmbk(:,:) ), 1 )  
    22702270      ! 
    22712271   END SUBROUTINE crs_dom_bat 
  • NEMO/trunk/src/OCE/DIA/dia25h.F90

    r9598 r9919  
    139139      ! ----------------- 
    140140      ! Define frequency of summing to create 25 h mean 
    141       IF( MOD( 3600,INT(rdt) ) == 0 ) THEN 
    142          i_steps = 3600/INT(rdt) 
     141      IF( MOD( 3600,NINT(rdt) ) == 0 ) THEN 
     142         i_steps = 3600/NINT(rdt) 
    143143      ELSE 
    144144         CALL ctl_stop('STOP', 'dia_wri_tide: timestep must give MOD(3600,rdt) = 0 otherwise no hourly values are possible') 
  • NEMO/trunk/src/OCE/DOM/domain.F90

    r9598 r9919  
    542542         ! 
    543543         cd_cfg = 'ORCA' 
    544          CALL iom_get( inum, 'ORCA_index', zorca_res )   ;   kk_cfg = INT( zorca_res ) 
     544         CALL iom_get( inum, 'ORCA_index', zorca_res )   ;   kk_cfg = NINT( zorca_res ) 
    545545         ! 
    546546         WRITE(ldtxt(ii),*) '   .'                                                     ;   ii = ii+1 
     
    562562      ENDIF 
    563563      ! 
    564       CALL iom_get( inum, 'jpiglo', ziglo  )   ;   kpi = INT( ziglo ) 
    565       CALL iom_get( inum, 'jpjglo', zjglo  )   ;   kpj = INT( zjglo ) 
    566       CALL iom_get( inum, 'jpkglo', zkglo  )   ;   kpk = INT( zkglo ) 
    567       CALL iom_get( inum, 'jperio', zperio )   ;   kperio = INT( zperio ) 
     564      CALL iom_get( inum, 'jpiglo', ziglo  )   ;   kpi = NINT( ziglo ) 
     565      CALL iom_get( inum, 'jpjglo', zjglo  )   ;   kpj = NINT( zjglo ) 
     566      CALL iom_get( inum, 'jpkglo', zkglo  )   ;   kpk = NINT( zkglo ) 
     567      CALL iom_get( inum, 'jperio', zperio )   ;   kperio = NINT( zperio ) 
    568568      CALL iom_close( inum ) 
    569569      ! 
  • NEMO/trunk/src/OCE/DOM/domzgr.F90

    r9598 r9919  
    253253      !                          !* ocean top and bottom level 
    254254      CALL iom_get( inum, jpdom_data, 'top_level'    , z2d  , lrowattr=ln_use_jattr )   ! 1st wet T-points (ISF) 
    255       k_top(:,:) = INT( z2d(:,:) ) 
     255      k_top(:,:) = NINT( z2d(:,:) ) 
    256256      CALL iom_get( inum, jpdom_data, 'bottom_level' , z2d  , lrowattr=ln_use_jattr )   ! last wet T-points 
    257       k_bot(:,:) = INT( z2d(:,:) ) 
     257      k_bot(:,:) = NINT( z2d(:,:) ) 
    258258      ! 
    259259      ! reference depth for negative bathy (wetting and drying only) 
     
    307307      END DO 
    308308      ! converte into REAL to use lbc_lnk ; impose a min value of 1 as a zero can be set in lbclnk  
    309       zk(:,:) = REAL( miku(:,:), wp )   ;   CALL lbc_lnk( zk, 'U', 1. )   ;   miku(:,:) = MAX( INT( zk(:,:) ), 1 ) 
    310       zk(:,:) = REAL( mikv(:,:), wp )   ;   CALL lbc_lnk( zk, 'V', 1. )   ;   mikv(:,:) = MAX( INT( zk(:,:) ), 1 ) 
    311       zk(:,:) = REAL( mikf(:,:), wp )   ;   CALL lbc_lnk( zk, 'F', 1. )   ;   mikf(:,:) = MAX( INT( zk(:,:) ), 1 ) 
    312       ! 
    313       zk(:,:) = REAL( mbku(:,:), wp )   ;   CALL lbc_lnk( zk, 'U', 1. )   ;   mbku(:,:) = MAX( INT( zk(:,:) ), 1 ) 
    314       zk(:,:) = REAL( mbkv(:,:), wp )   ;   CALL lbc_lnk( zk, 'V', 1. )   ;   mbkv(:,:) = MAX( INT( zk(:,:) ), 1 ) 
     309      zk(:,:) = REAL( miku(:,:), wp )   ;   CALL lbc_lnk( zk, 'U', 1. )   ;   miku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
     310      zk(:,:) = REAL( mikv(:,:), wp )   ;   CALL lbc_lnk( zk, 'V', 1. )   ;   mikv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
     311      zk(:,:) = REAL( mikf(:,:), wp )   ;   CALL lbc_lnk( zk, 'F', 1. )   ;   mikf(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
     312      ! 
     313      zk(:,:) = REAL( mbku(:,:), wp )   ;   CALL lbc_lnk( zk, 'U', 1. )   ;   mbku(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
     314      zk(:,:) = REAL( mbkv(:,:), wp )   ;   CALL lbc_lnk( zk, 'V', 1. )   ;   mbkv(:,:) = MAX( NINT( zk(:,:) ), 1 ) 
    315315      ! 
    316316   END SUBROUTINE zgr_top_bot 
  • NEMO/trunk/src/OCE/TRA/trabbl.F90

    r9598 r9919  
    526526      zmbku(:,:) = REAL( mbku_d(:,:), wp )   ;     zmbkv(:,:) = REAL( mbkv_d(:,:), wp )   
    527527      CALL lbc_lnk_multi( zmbku,'U',1., zmbkv,'V',1.)  
    528       mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ;  mbkv_d(:,:) = MAX( INT( zmbkv(:,:) ), 1 ) 
     528      mbku_d(:,:) = MAX( INT( zmbku(:,:) ), 1 ) ;  mbkv_d(:,:) = MAX( NINT( zmbkv(:,:) ), 1 ) 
    529529      ! 
    530530      !                             !* sign of grad(H) at u- and v-points; zero if grad(H) = 0 
  • NEMO/trunk/src/OCE/USR/usrdef_zgr.F90

    r9598 r9919  
    204204      CALL lbc_lnk( z2d, 'T', 1. )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
    205205      ! 
    206       k_bot(:,:) = INT( z2d(:,:) )           ! =jpkm1 over the ocean point, =0 elsewhere 
     206      k_bot(:,:) = NINT( z2d(:,:) )           ! =jpkm1 over the ocean point, =0 elsewhere 
    207207      ! 
    208208      k_top(:,:) = MIN( 1 , k_bot(:,:) )     ! = 1    over the ocean point, =0 elsewhere 
  • NEMO/trunk/src/OCE/stpctl.F90

    r9808 r9919  
    114114         CALL mpp_max_multiple( zmax(:), 5 )    ! max over the global domain 
    115115         ! 
    116          nstop = INT( zmax(5) )                 ! nstop indicator sheared among all local domains 
     116         nstop = NINT( zmax(5) )                 ! nstop indicator sheared among all local domains 
    117117      ENDIF 
    118118      ! 
Note: See TracChangeset for help on using the changeset viewer.