Custom Query (986 matches)
Results (811 - 813 of 986)
Ticket | Owner | Reporter | Resolution | Summary |
---|---|---|---|---|
#967 | Fixed | IMPORTANT: Updating mixed-precision split 4D-Var RPCG solver | ||
Description |
github.com/myroms/roms/pull/33 A few routines were updated to allow compiling and running split 4D-Var with mixed precision. The split 4D-Var algorithms (like RBL4DVAR_SPLIT) recommend the mixed precision approach to accelerate computations. The executing script (see submit_split_rbl4dvar.sh) uses multiple ROMS executables, which runs the outer loop in double precision (nonlinear background trajectory, prior) and single precision in the inner loops (tangent linear and adjoint minimization, increment phase). In this update, several of the variables needed by the RPCG solver are declared in double precision to reduce the impact of rounding error and the convergence of the minimization algorithm (rpcg_lanczos.F) when computing dot-products and Ritz eigenvalues and eigenvectors. We use the real(dp) to declare specific internal variables in such cases. For example, in rpcg_lanczos.F, we have: ! ! Local variable declarations. ! logical :: Ltrans, Laug ! integer :: i, ic, j, iobs, ivec, Lscale, info ! real(dp) :: zbet, eps, preducv, preducy real(dp) :: Jopt, Jf, Jmod, Jdata, Jb, Jobs, Jact, cff ! real(dp), dimension(NinnLoop) :: zu, zgam, zfact, ztemp3 real(dp), dimension(NinnLoop) :: ztemp1, ztemp2, zu1, zu2 real(dp), dimension(NinnLoop) :: ztemp4 real(dp), dimension(Ndatum(ng)+1) :: px, pgrad, zw, zt real(dp), dimension(Ndatum(ng)+1) :: zhv, zht, zd real(dp), dimension(Ninner,3) :: zwork real(dp), dimension(2*(NinnLoop-1)) :: work real(dp), dimension(Ninner,Ninner) :: zgv Many thanks to Pariza Heidary (NOAA) and Julia Levin for bringing this to my attention. |
|||
#969 | Fixed | VERY IMPORTANT: Mixed precision for Split 4D-Var | ||
Description |
A few routines were updated to allow compiling and running split 4D-Var with mixed precision. The split 4D-Var algorithms (like RBL4DVAR_SPLIT) recommend the mixed precision approach to accelerate computations. The executing script (see submit_split_rbl4dvar.sh) uses multiple ROMS executables, which runs the outer loop in double precision (nonlinear background trajectory, prior) and single precision in the inner loops (tangent linear and adjoint minimization, increment phase). In this update, several of the variables needed by the RPCG solver are declared in double precision to reduce the impact of rounding error and the convergence of the minimization algorithm (rpcg_lanczos.F) when computing dot-products and Ritz eigenvalues and eigenvectors. We use the real(dp) to declare specific internal variables in such cases. For example, in rpcg_lanczos.F, we have: ! ! Local variable declarations. ! logical :: Ltrans, Laug ! integer :: i, ic, j, iobs, ivec, Lscale, info ! real(dp) :: zbet, eps, preducv, preducy real(dp) :: Jopt, Jf, Jmod, Jdata, Jb, Jobs, Jact, cff ! real(dp), dimension(NinnLoop) :: zu, zgam, zfact, ztemp3 real(dp), dimension(NinnLoop) :: ztemp1, ztemp2, zu1, zu2 real(dp), dimension(NinnLoop) :: ztemp4 real(dp), dimension(Ndatum(ng)+1) :: px, pgrad, zw, zt real(dp), dimension(Ndatum(ng)+1) :: zhv, zht, zd real(dp), dimension(Ninner,3) :: zwork real(dp), dimension(2*(NinnLoop-1)) :: work real(dp), dimension(Ninner,Ninner) :: zgv Many thanks to Pariza Heidary (NOAA) and Julia Levin for bringing this to my attention. |
|||
#970 | Done | VERY IMPORTANT: Updating to COARE 3.5 | ||
Description |
The bulk fluxes parameterization module was updated to the COARE 3.5 algorithm. For detailed documentation about this update, please check github.com/myroms/ROMS PR #35. Many thanks to Fernando Pareja and John Wilkin for implementing and testing this update to bulk_flux.F. |