[問題] 無法輸出output(已寫好的檔案)

作者: adu (^_^)   2018-04-26 15:30:11
我拿到一份寫好的檔案要試跑
理論上應該執行就好了 不過我怎麼試 make 或 gfortran 都沒有 output file 產生
請問問題可能出在哪裡 還是我該用別的指令?
(資料在 cabbagel.F
主程式會呼叫一個叫做 parfit的資料夾裡面的檔案
結果應該要產生成一個檔案
我在Ubuntu 下打 make 或 make cabbagel 或 改成gfortran ,會跑但都沒有產生)
__下面是主程式的makefile__
# Makefile for PARFITS
# version including handling of implicit switches
MAKE = make
FC = gfortran
TRAJEC = traj.o
BLASM = ./parfits/blasm/blas.o \
./parfits/blasm/mutil.o \
./parfits/blasm/dgesvd1.o
INTEGR1 = ./parfits/integr/metanb.o
# INTEGR2 = ./parfits/integr/difsys.o (not available)
PARFITS = ./parfits/parfits.o \
./parfits/monitn.o \
./parfits/initju.o \
./parfits/hcut.o \
./parfits/inscal.o \
./parfits/rankr.o \
./parfits/evalc.o \
./parfits/ssai.o \
./parfits/chscal.o \
./parfits/calcom.o \
./parfits/ind.o \
./parfits/intj.o \
./parfits/idcon.o \
./parfits/qdiff.o \
./parfits/hdiff.o \
./parfits/update.o \
./parfits/fd.o \
./parfits/yallfunc.o \
./parfits/upmult.o \
./parfits/exit.o
INCREM = ./parfits/increm/increm4.o \
./parfits/increm/inc4_l2.o \
./parfits/increm/inc4_l1.o \
./parfits/increm/inc4_l3.o \
./parfits/increm/dec4_l2.o \
./parfits/increm/sol_l2.o \
./parfits/increm/sol_l1.o \
./parfits/increm/sol_l3.o \
./parfits/increm/dminv_l1.o \
./parfits/increm/qpsol.o \
./parfits/increm/lpckk.o \
./parfits/increm/qpckk.o \
./parfits/increm/qpckk1.o \
./parfits/increm/qpckk2.o \
./parfits/increm/crj.o
COV = ./parfits/cov/cov.o \
./parfits/cov/cov4.o \
./parfits/cov/covtot.o
PRINT = ./parfits/print/print.o \
./parfits/print/prtmain.o \
./parfits/print/prthead.o \
./parfits/print/prtit.o \
./parfits/print/prtmatrix.o \
./parfits/print/prtmatrixlp.o \
./parfits/print/prtmatrixhp.o \
./parfits/print/prtmatrixint.o
PYMETS = pymets.o
PYMET2S = pymet2s.o
CABBAGEL = cabbagel.o
CABBAGEQ = cabbageq.o
CABBAGELLL = cabbagelll.o
CABBAGEQQQ = cabbageqqq.o
PYMETDS = $(PYMETS) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
PYMET2DS = $(PYMET2S) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
CABBAGDL = $(CABBAGEL) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
CABBAGDQ = $(CABBAGEQ) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
CABBAGDLLL = $(CABBAGELLL) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
CABBAGDQQQ = $(CABBAGEQQQ) $(PARFITS) $(INCREM) $(COV) $(INTEGR1) $(BLASM)
$(PRINT) $(TRAJEC)
FFLAGS = -c -g -Wall
CCFLAGS = -c -g -Wall
#LDFLAGS = -Wall
all: pymets pymet2s \
cabbagel cabbageq \
cabbagelll cabbageqqq
pymets: lkmaxdim mkparfits $(PYMETDS)
[email protected]$(FC) $(PYMETDS) $(LDFLAGS) -o [email protected]
pymet2s: lkmaxdim mkparfits $(PYMET2DS)
[email protected]$(FC) $(PYMET2DS) $(LDFLAGS) -o [email protected]
cabbagel: lkmaxdim mkparfits $(CABBAGDL)
[email protected]$(FC) $(CABBAGDL) $(LDFLAGS) -o [email protected]
cabbageq: lkmaxdim mkparfits $(CABBAGDQ)
[email protected]$(FC) $(CABBAGDQ) $(LDFLAGS) -o [email protected]
cabbagelll: lkmaxdim mkparfits $(CABBAGDLLL)
[email protected]$(FC) $(CABBAGDLLL) $(LDFLAGS) -o [email protected]
cabbageqqq: lkmaxdim mkparfits $(CABBAGDQQQ)
[email protected]$(FC) $(CABBAGDQQQ) $(LDFLAGS) -o [email protected]
mkparfits:
[email protected] parfits;$(MAKE) parfit
lkmaxdim:
[email protected] "Link auf maxdim wird gesetzt."
[email protected] maxdim.f -f
ln -s ./parfits/maxdim.f maxdim.f
clean:
$(MAKE) clean -C ./parfits
rm maxdim.f -f
rm *.o -f
rm fort.* -f
rm pymets.f -f
rm pymet2s.f -f
rm cabbagel.f -f
rm cabbageq.f -f
rm cabbagelll.f -f
rm cabbageqqq.f -f
rm delays.f -f
rm traj.f -f
rm pymets -f
rm pymet2s -f
rm cabbagel -f
rm cabbageq -f
rm cabbagelll -f
rm cabbageqqq -f
# Following lines provide automatic invocation of the
# C preprocessor cpp for FORTRAN files with suffix .F
# (Default on most UNIX platforms, but not on IBM's)
# define preprocessor
CPP = /lib/cpp
# compiler option for preprocessor
CPFLAGS = -P
.SUFFIXES: .F
.F.o:
[email protected]$(CPP) $(CPFLAGS) $< $*.f
$(FC) $(FFLAGS) $*.f
[email protected] -f $*.f
.f.o:
[email protected]$(FC) $(FFLAGS) $*.f
.c.o:
$(CC) $(CCFLAGS) $*.c
作者: blc (Anemos)   2018-04-26 17:31:00
好像沒有用來執行程式的target?
作者: Cypresslin (啊哈哈~~)   2018-04-27 00:33:00
有錯誤訊息嗎?
作者: blc (Anemos)   2018-04-27 20:24:00
這個makefile只有做編譯而已,要自己手動執行編好的程式
作者: adu (^_^)   2018-04-27 21:19:00
請問手動執行的意思是?
作者: rex0707 (我就是我)   2018-04-27 23:43:00
要自己開啟執行檔來執行程式的意思吧 執行執行檔之後才會產生output filecabbagel, cabbageq, pymet2s, pymets都是.exe? .out?
作者: adu (^_^)   2018-04-28 02:07:00
他們都是沒有附檔名的檔案 用editor開都是亂碼
作者: rex0707 (我就是我)   2018-04-28 13:31:00
歐歐看到你是用ubuntu 執行檔案就打./cabbagel就可以了吧

Links booklink

Contact Us: admin [ a t ] ucptt.com