Я пытаюсь изменить одно из измерений матрицы в 2d в Фортране
У меня есть матрица "VFM [4208,5155]". Из этого я хочу преобразовать "vfm [4208,1166: 5515]" в "vfm [4208,290]".
Извлечение vfm [4208,1166: 5515] превращает его в vfm [4208,4350]. Кроме того, я хочу изменить второе измерение (4350) в 2d (290x15), а затем усреднить измененную матрицу по второму измерению (15). Это означает, что окончательная матрица должна быть как "vfm [4208,290]".
Вот поток кода:
vfm [4208,4350] -> vfm [4208,290,15] ---> vfm [4208,290]
Фактический мой код слишком длинный, поэтому я пишу связанную часть кода здесь.
Character*80:vfmf
integer, dimension(:,:), allocatable, target :: vfm
integer, dimension(:,:), pointer :: vfm1
xdim=4208
ydim=5515
open(16,file=vfmf,status='old')
allocate(vfm(xdim,ydim))
read(16,*)((vfm(ii,jj),jj=1,ydim),ii=1,xdim)
vfm1 => vfm(:,1166:5515)
vfm2=reshape((vfm1),(/xdim,4350/),(/xdim,290,15))
Stop
End
После этого я сталкиваюсь со следующей ошибкой
Error: Syntax error in array constructor at (1)
Я не могу изменить vfm [4208, 4350] до vfm [4208,290,15], используя fortran в Ubuntu.
Пожалуйста, помогите мне решить эту проблему.
Заранее спасибо.