Подпрограмма ABAQUS запускается, когда настроена как программа, но не как подпрограмма - PullRequest
0 голосов
/ 17 января 2019

Я пишу подпрограмму DISP для ABAQUS 6.14, начиная с небольших шагов - пытаясь открыть и прочитать файл, содержащий данные смещения. До сих пор у меня есть скрипт на Фортране, который отлично работает, когда настроен как независимая программа, но падает, когда ABAQUS запускает его как подпрограмму. Рабочая версия:

PROGRAM DISP

INTEGER nnodes, IOS
PARAMETER (nnodes = 5652)
REAL A(nnodes,4)

WRITE(*,*) 'hello world'

OPEN(UNIT=11,FILE ="displaced_shape.dat",IOSTAT=IOS)
WRITE(*,*) IOS

DO ix = 1,nnodes
  READ(11,*) A(ix,:)
END DO

WRITE(*,*) A(2,3)
END PROGRAM DISP

Вывод этой программы

hello world
          0
 5.4729998E-04

Подпрограмма:

SUBROUTINE DISP(U,KSTEP,KINC,TIME,NODE,NOEL,JDOF,COORDS) 

INCLUDE 'ABA_PARAM.INC' 
DIMENSION U(3),TIME(2),COORDS(3) 

INTEGER nnodes, IOS
PARAMETER (nnodes = 5652)
REAL A(nnodes,4)

WRITE(*,*) 'hello world'

OPEN(UNIT=11,FILE ="displaced_shape.dat",IOSTAT=IOS)
WRITE(*,*) IOS

DO ix = 1,nnodes
  READ(11,*) A(ix,:)
END DO

WRITE(*,*) A(2,3)

RETURN
END SUBROUTINE DISP

Вывод подпрограммы

hello world
          0
forrtl: severe (24): end-of-file during read, unit 11

Как видите, сценарии идентичны, за исключением упаковки. Я запускаю их из той же папки, ссылаясь на тот же файл данных. Может быть, дело в версии Фортрана? Документация ABAQUS довольно расплывчата по этому вопросу.

Буду признателен за любые идеи, спасибо за вашу помощь.

Редактировать: как может быть очевидно, файл "displaced_shape.dat" имеет формат

1  0.1  0.2  0.3
2  0.1  0.2  0.3
....
5652  0.1  0.2  0.3

Ответы [ 2 ]

0 голосов
/ 28 февраля 2019

Для других, кто может столкнуться с этой проблемой: проблема в том, что ABAQUS требует полный путь к файлу, а не просто проверяет рабочий каталог для него. Добавление абсолютного пути к файлу решило проблему.

0 голосов
/ 19 января 2019

Проблема, скорее всего, связана с присвоением номера вашего файлового блока значению, которое должно быть зарезервировано для использования Abaqus. В соответствии с документами 1 существует простое исправление: для Abaqus / Standard используйте номер файла 15-18 или> 100. Для Явного используйте 16-18 или> 100, оканчивающиеся на 5-9 (например, 105).

1 Руководство пользователя Abaqus Analysis> Введение> Выполнение задания> Номера единиц FORTRAN

...