! Those are old legacy CRAY replacement functions, that are now used in several parts of the code. MODULE lmdz_ssum_scopy IMPLICIT NONE; PRIVATE PUBLIC ssum, scopy CONTAINS SUBROUTINE scopy(n, sx, incx, sy, incy) IMPLICIT NONE INTEGER n, incx, incy, ix, iy, i REAL sx((n - 1) * incx + 1), sy((n - 1) * incy + 1) iy = 1 ix = 1 DO i = 1, n sy(iy) = sx(ix) ix = ix + incx iy = iy + incy END DO end function ssum(n, sx, incx) IMPLICIT NONE INTEGER n, incx, i, ix REAL ssum, sx((n - 1) * incx + 1) ssum = 0. ix = 1 do i = 1, n ssum = ssum + sx(ix) ix = ix + incx END DO end END MODULE lmdz_ssum_scopy