Раньше я делал в одном файле под названием umat.f90
,
!!! umat.f90
module1
!! Content of module1
end module1
module2
!! Content of module2
end module2
!! This has to be a subroutine to interface with some legacy code in a software called ABAQUS
subroutine umat (argument-list)
use module1
use module2
!! Content of umat
end subroutine umat
Это работает. Я могу использовать ifort -c umat.f90
, тогда он генерирует umat.obj
для ссылки на программу под названием ABAQUS
(которую я не могу модифицировать). Теперь, поскольку module1
и module2
можно использовать повторно, я хочу сохранить их в отдельных файлах .f90
, чтобы соответствовать принципу DRY. Итак, это становится тремя отдельными файлами:
Файл №1:
!!! module1.f90
module1
!! Content of module1
end module1
Файл №2:
!!! module2.f90
module2
!! Content of module2
end module2
Файл №3:
!!! umat.f90
!! This has to be a subroutine to interface with some legacy code in a software called ABAQUS
subroutine umat (argument-list)
use module1
use module2
!! Content of umat
end subroutine umat
Однако теперь, если я запущу ifort /c module1.f90 module2.f90 umat.f90
, он сгенерирует 3 файла obj. Похоже, что umat.obj
больше не содержит информации о модулях из module1
и module2
.
Учитывая, что я могу предоставить только один файл .obj
для интерфейса с ABAQUS, могу ли я скомпилировать их в один большой файл .obj
?
PS: я знаю, что могу использовать скрипт python для автоматического копирования и вставки трех файлов в один каждый раз, но это кажется действительно грязным и неэлегантным способом сделать это.