Я пытаюсь запустить код для математического алгоритма (метод сопряженного градиента). При этом я ввожу матрицу двойной точности, определенную в преамбуле. При компиляции получаю следующую ошибку:
A=RESHAPE((/ 0,8,0,4,26,8,0,17.5,0,0,0,17.5,0,2.5,-8,4,0,2.5,0,-5,26,0,-8,-5,0
1
Error: Element in INTEGER(4) array constructor at (1) is REAL(4)
make: FTranProjectBuilder: Error: Execution exited with code 2
*** [cg_main.o] Error 1
Мое определение в программе с определяемой матрицей дается как таковое (определение массива — первая операция моей программы):
PROGRAM cg_main
IMPLICIT NONE
INTEGER,PARAMETER ::d=5 !use a parameter for the dimensions (simple)
DOUBLE PRECISION,DIMENSION(d,d) ::A !matrix
INTEGER,DIMENSION(2) ::order2 = (/ 2, 1 /) !matrix reshape order
[MORE DECLARATIONS HERE]
A=RESHAPE((/ 0,8,0,4,26,8,0,17.5,0,0,0,17.5,0,2.5,-8,4,0,2.5,0,-5,26,0,-8,-5,0 /),(/d,d/), order2) !specify dxd matrix
[MORE CODE HERE]
END PROGRAM
Код работает без десятичных чисел в моем вводе матрицы, но, похоже, не работает с моими десятичными знаками, и я понятия не имею, почему.