Fortran 板


LINE

我拿到一份寫好的檔案要試跑 理論上應該執行就好了 不過我怎麼試 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) -@$(FC) $(PYMETDS) $(LDFLAGS) -o $@ pymet2s: lkmaxdim mkparfits $(PYMET2DS) -@$(FC) $(PYMET2DS) $(LDFLAGS) -o $@ cabbagel: lkmaxdim mkparfits $(CABBAGDL) -@$(FC) $(CABBAGDL) $(LDFLAGS) -o $@ cabbageq: lkmaxdim mkparfits $(CABBAGDQ) -@$(FC) $(CABBAGDQ) $(LDFLAGS) -o $@ cabbagelll: lkmaxdim mkparfits $(CABBAGDLLL) -@$(FC) $(CABBAGDLLL) $(LDFLAGS) -o $@ cabbageqqq: lkmaxdim mkparfits $(CABBAGDQQQ) -@$(FC) $(CABBAGDQQQ) $(LDFLAGS) -o $@ mkparfits: -@cd parfits;$(MAKE) parfit lkmaxdim: -@echo "Link auf maxdim wird gesetzt." -@rm 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: -@$(CPP) $(CPFLAGS) $< $*.f $(FC) $(FFLAGS) $*.f -@rm -f $*.f .f.o: -@$(FC) $(FFLAGS) $*.f .c.o: $(CC) $(CCFLAGS) $*.c --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 78.104.103.87
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Fortran/M.1524727815.A.0C9.html
1F:→ blc: 好像沒有用來執行程式的target? 04/26 17:31
程式本身有缺嗎?
2F:→ Cypresslin: 有錯誤訊息嗎? 04/27 00:33
這個程式有點麻煩的是,他是我的指導教授三十年前發表論文寫的 後來他都沒有親手改過,最後一個版本是十年前的學長動的 所以他看不懂 學長也早已畢業 實驗室大家在用的是Matlab, R, Python跟Java 很希望有版大可以告訴我問題在哪邊 目前是看得懂fortran程式想做些甚麼 但沒到可以寫的程度 (有Matlab跟R的經驗,學過初淺的C++)
3F:→ Cypresslin: make[1]: /lib/cpp: Command not found 缺cpp預處理器 04/27 10:37
4F:→ Cypresslin: 先裝個cpp再重跑make看看吧 04/27 10:43
抱歉昨天電腦不在身邊 所以用朋友的Window沒注意到 剛剛用我的電腦跑 用了make之後 會正常產生需要的 *.o 的資料 不過我期待他會在某個的地方產生output 但是一直都沒找到 ___這是執行make後(獢颤是桌面 在複製 儲存 後的亂碼 執行時沒問題)___ user@user-Aspire-S5-371:~/獢颤/try$ make ln -s ./parfits/maxdim.f maxdim.f make[1]: Entering directory '/home/user/獢颤/try/parfits' make[2]: Entering directory '/home/user/獢颤/try/parfits/print' Building PRINT Objects make[2]: Leaving directory '/home/user/獢颤/try/parfits/print' make[2]: Entering directory '/home/user/獢颤/try/parfits/blasm' Building BLAS and MUTIL Objects make[2]: Leaving directory '/home/user/獢颤/try/parfits/blasm' make[2]: Entering directory '/home/user/獢颤/try/parfits/cov' Building COV Objects make[2]: Leaving directory '/home/user/獢颤/try/parfits/cov' make[2]: Entering directory '/home/user/獢颤/try/parfits/increm' Building INCREM Objects make[2]: Leaving directory '/home/user/獢颤/try/parfits/increm' make[2]: Entering directory '/home/user/獢颤/try/parfits/integr' Building INTEGR Objects make[2]: Leaving directory '/home/user/獢颤/try/parfits/integr' Building PARFITS make[1]: Leaving directory '/home/user/獢颤/try/parfits' ___make結束後的檔案___ user@user-Aspire-S5-371:~/獢颤/try$ ls cabbagel cabbagel.o cabbageqqq.F parameters pymets traj.F cabbagel.F cabbageq cabbageqqq.o parfits pymets.F traj.o cabbagelll cabbageq.F fort.13 pymet2s pymets.F_orig cabbagelll.F cabbageq.o makefile pymet2s.F pymets.F-with cabbagelll.o cabbageqqq maxdim.f pymet2s.o pymets.o user@user-Aspire-S5-371:~/獢颤/try$ ※ 編輯: adu (78.104.103.87), 04/27/2018 15:40:17
5F:→ blc: 這個makefile只有做編譯而已,要自己手動執行編好的程式 04/27 20:24
6F:→ adu: 請問手動執行的意思是? 04/27 21:19
7F:→ rex0707: 要自己開啟執行檔來執行程式的意思吧 執行執行檔之後才會 04/27 23:43
8F:→ rex0707: 產生output file 04/27 23:43
9F:→ rex0707: cabbagel, cabbageq, pymet2s, pymets都是.exe? .out? 04/27 23:44
10F:→ adu: 他們都是沒有附檔名的檔案 用editor開都是亂碼 04/28 02:07
自己開啟執行檔是這個意思嗎? user@user-Aspire-S5-371:~/PARFIT-EKATERINA$ gfortran -o cabbagel cabbagel.F /tmp/ccylm1aX.o: 於函式 MAIN__: cabbagel.F:(.text+0x13b): 未定義參考到「dcopy_」 cabbagel.F:(.text+0x2e7): 未定義參考到「metanb_」 cabbagel.F:(.text+0x30b): 未定義參考到「parfit_」 cabbagel.F:(.text+0x36d): 未定義參考到「metanb_」 cabbagel.F:(.text+0x3a8): 未定義參考到「traj_」 collect2: error: ld returned 1 exit status ※ 編輯: adu (78.104.103.87), 04/28/2018 02:40:49
11F:→ rex0707: 歐歐看到你是用ubuntu 執行檔案就打./cabbagel就可以了吧 04/28 13:31
對 有output了! 我看看要怎麼把新的資料改進去 謝謝rex0707, blc跟 Cypresslin :D ※ 編輯: adu (78.104.26.192), 04/28/2018 16:41:32







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP