我正在编译在Linux中开发的G77 / GNU FORTRAN代码,以便与Windows中的Intel Fortran一起使用。我在代码中得到了一个奇怪的分配,以修改DO循环索引,例如I + 1 = M或I-1 = N,其中I在DO循环索引中。英特尔Fortran编译器不接受。 Intel Fortran编译器中也不允许修改循环索引。英特尔Fortran中用于这些分配的等效代码是什么?
代码如下:
DO L=2,LA
I=IL(L)
J=JL(L)
IF(IJCT(I-1,J).EQ.9)THEN
L-1=LC
ELSE
L-1=LIJ(I-1,J)
L-1=MAX(L-1,1)
ENDIF
IF(IJCT(I+1,J).EQ.9)THEN
L+1=LC
ELSE
L+1=LIJ(I+1,J)
L+1=MAX(L+1,1)
ENDIF
ENDDO