Opened 4 years ago

Closed 4 years ago

#856 closed upgrade (Done)

Update for mixed precision computations

Reported by: arango Owned by:
Priority: major Milestone: Release ROMS/TOMS 3.9
Component: Nonlinear Version: 3.9
Keywords: Cc:

Description

  • The update includes changes to several files to allow mixed single and double precision in some applications. In single precision, we need to ensure that time and scale factors are in double precision. For example, in wrt_ini.F we have:
         real(r8) :: Fmin, Fmax
         real(dp) :: my_time, scale
    
    Recall that in single-precision the floating-point kind parameters are set in mod_kinds.F as:
            integer, parameter :: dp = SELECTED_REAL_KIND(12,300)  ! 64-bit
            integer, parameter :: r4 = SELECTED_REAL_KIND(6,30)    ! 32-bit
    # ifdef SINGLE_PRECISION
            integer, parameter :: r8 = SELECTED_REAL_KIND(6,30)    ! 32-bit
    # else
            integer, parameter :: r8 = SELECTED_REAL_KIND(12,300)  ! 64-bit
    # endif
    
  • Modified routine wclock_off to report also the total profile times in the MPI communications for all nested grids (if NESTING is activated), and its total for all numerical kernels in 4D-Var applications.

Change History (1)

comment:1 by arango, 4 years ago

Resolution: Done
Status: newclosed
Note: See TracTickets for help on using tickets.