Я пишу userubroutine с помощью Fortran (Intel Composer (2011.1.107)) для ANSYS14.5.7 Я отредактировал код, чтобы записать некоторые данные во внешний последовательный файл и прочитать их в массиве для расчетов следующим образом:ошибка сегментации в linux для ansys
c Writes the array elements into the relevent elementID file and Integration point
Do ElementNo=1,MaxEleNo
c writes the file name for the relevent element
write (filename1, '("Element_", I4)') ElementNo
c opens the relevent file for the element data
OPEN(unit=ElementNo,status='unknown',ACCESS='APPEND'
& ,file=filename1)
Write(ElementNo,fmt='(*(D))')(sthistory(ElementNo,:))
close (ElementNo)
end do
sthistory=ZERO
else
endif
когда я запускаю это я получаю эту ошибку из системы HPC:
Lyra: Ansys (v14.5.7) loaded.
Lyra: Intel Composer (2011.1.107) module loaded.
/pkg/suse11/ansys/v145/ansys/bin/ansys145: line 817: 50102 Segmentation fault /pkg/suse11/ansys/v145/ansys/bin/linx64/ansys.e145 -np 4
Но никаких проблем с кодом, когда я бегом со статическим массивом с сохранением атрибута в подпрограмма. Но это не является достаточным для хранения всех данных в моих расчетах. Может кто-нибудь помочь мне найти, что может быть проблемой.
Какой линии в вашем код точно соответствует строке 817? –
бит о статических массивах не имеет смысла, так как вы не показываете никаких объявлений/распределений .. нужен больше контекста. – agentp
HPC == Высокопроизводительные вычисления? == Параллельно ?? Если это должно быть потокобезопасным, то есть целая другая проблема, и вам нужно уточнить. – agentp