[MITgcm-cvs] MITgcm/pkg/seaice CVS Commit
Martin Losch
mlosch at forge.csail.mit.edu
Mon Jun 15 11:08:51 EDT 2015
Update of /u/gcmpack/MITgcm/pkg/seaice
In directory forge:/tmp/cvs-serv23669/pkg/seaice
Modified Files:
seaice_lsr.F
Log Message:
modify seaice_lsr.F in order to improve the gradient computations; for
SEAICE_VECTORIZE_LSR defined,
- move the loops over which the tridiagonal solvers (seaice_lsr_tridiagu/v)
sweep to the outside,
- remove store directives and add "CADJ loop sequential" directives
in analogy to model/src/solve_tridiagonal.F
- replace many "#ifdef SEAICE_VECTORIZE_LSR_ZEBRA" by variable loop
boundaries to yield more readable code. This has also the charming side
effect that your can use SEAICE_VECTORIZE_LSR_ZEBRA without
SEAICE_VECTORIZE_LSR (i.e. adjoint without recomputations in
seaice_lsr_tridiagu/v now requires either of these flags, vectorization
still requires SEAICE_VECTORIZE_LSR with SEAICE_VECTORIZE_LSR_ZEBRA as
an additional option)
The tridiagonal solvers are now completely analoguous to solve_tridiagonal.F
but the adjoint gradients (which are affected by this change) still explode.
More information about the MITgcm-cvs
mailing list