PARACO and option 1, 3 and 4
This issue was created automatically from an original CUE issue. Further discussion may take place here.
Following recent discussions with Jan Riehme while visiting HR Wallingford, we found out that there might be a possible source of parallel adjoint trouble within @paraco.f@
- Doing synronisation (at the interface of domain) that ensures same value on all processors by NOT using option 2, that will use adjoint of SOME processors
- The adjoint update will be propagated on the maximal/minimal processor element only
- This is very likely the reason for the mismatch between parallel and serial adjoints.
@IF ( abs(v) .lt. max(abs(v(i)) ) v = v(i)@ does not synchronize @vr == -2@ and @vs == 2@
As far as I can see, there is "only" one instance for which @PARACO@ is given the option 1: @SUBROUTINE GRADZ@
Note that @SUBROUTINE MAJTRAC@ says it uses ICOM=1, but does not.
What are the reasons for that choice (@GRADZ@), and what would be so bad it we impose that @ICOM = 2@ all the time ?
Sébastien