грешка при компилация на nr.f90

Трябва да използвам подпрограма MRQMIN в моя код на Fortran 90. Вътре в тази подпрограма има някои други модули nrtype.90, nrutil.f90 и nr.f90. Компилирам всички тези модули и моя собствен код с тези команди

ifort -c nrtype.90  
ifort -c nrutil.f90  
ifort -c nr.f90    
ifort test.f90 nrtype.o nrutil.o nr.o -o test 

но получавам тази грешка

/tmp/ifortcx4Tb3.o: In function `mrqmin_IP_mrqmin_private_':  
   test.f90:(.text+0x4041): undefined reference to `gaussj_'  
   test.f90:(.text+0x4896): undefined reference to `covsrt_'     
   test.f90:(.text+0x48a5): undefined reference to `covsrt_' 

пропускам ли нещо тук по време на компилацията?


person user2717742    schedule 18.10.2013    source източник
comment
Имам и двете функции gaussj & covsrt както в подпрограмата mrqmin, така и в nr.f90. MRQMIN използва тези три модула, а nr.f90 използва nrtype.f90. Имам команда за използване в MRQMIN и nr.f90. Но нямам функцията `mrqmin_IP_mrqmin_private_'   -  person user2717742    schedule 18.10.2013
comment
Значи функциите gaussj и covsrt и подпрограмата mrqmin са в един и същи модул във файл nr.f90?   -  person Alexander Vogt    schedule 18.10.2013
comment
не, mrqmin е подпрограма, която използвам в моя основен код test.f90 и всички останали модули се използват от mrqmin users.polytech.unice.fr/~dedale/cours/maths_physique_chimie/, но тези две функции се използват с както nr.f90, така и mrqmin   -  person user2717742    schedule 18.10.2013


Отговори (1)


nr.f90 предоставя само интерфейсите на подпрограмите, но не и самите подпрограми.

Трябва да компилирате gaussj.f90 и covsrt.f90 поотделно и да ги посочите също (опитах го за gfortran, но трябва да работи и с ifort):

gfortran -c gaussj.f90
gfortran -c covsrt.f90
gfortran test.f90 mrqmin.o nr.o nrtype.o nrutil.o gaussj.o covsrt.o
person Alexander Vogt    schedule 18.10.2013
comment
благодаря много, проработи за gaussj.f90, но бихте ли ми изпратили връзката, от която мога да изтегля и covsrt.f90? Не мога да го намеря - person user2717742; 18.10.2013
comment
Използвах връзката, която предоставихте (тя е в същата директория);-) - person Alexander Vogt; 18.10.2013