從來沒見過Fortran。。。這次為了添加國產衛星光譜響應的支持,只能從零開始肯了。
6S模型主頁:http://6s.ltdri.org/index.html。
下載最新的2015年更新的6SV2.1源碼。
下載windows 64位版本的gfortran,我直接下載的gcc編譯器,里面包含了Fortran編譯器。
mingw-w64
GCC for Windows 64 & 32 bits
網址:https://gcc.gnu.org/wiki/GFortranBinaries
下載完畢后是一個很小的網絡安裝包,選擇x86-64版本下載。

安裝后在目錄里可以找到bin文件夾,比如我的位置是:C:\Program Files\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev0\mingw64\bin
這里面linux下的編譯器全都有了。
因為之后需要對makefile文件進行編譯,這里需要下載make工具網址:http://gnuwin32.sourceforge.net/packages.html
我下載的安裝包,在安裝目錄里找到以下三個文件:

下面可以開始編譯了。一般的方式是先設置gcc編譯的環境變量PATH。我為了省事,直接將6sv2.1的所有文件與make工具的三個文件全都放到C:\Program Files\mingw-w64\x86_64-7.2.0-posix-seh-rt_v5-rev0\mingw64\bin里面。
編寫一個bat文件,內容兩行:
make.exe
pause
雙擊bat文件就能編譯成功了。
編譯前修改6sv里的Makefile文件第7行的
FC = gfortran $(FFLAGS)
為:
FC = gfortran –m64 $(FFLAGS)
就能保證編譯出64位的程序了。在最后幾行編譯結果生成里在sixsV2.1后面添加.exe:
sixsV2.1.exe
這樣就不用人工修改編譯結果的擴展名了。
編譯后生成的文件與依賴dll如下:

手寫一個輸入文件input.txt,內容如下:
0
69.51 145.72 0 0 1 12
3
1
23
-0.01
-1000
26
0
0
0
0.5
1
-0.1
4
編寫一個bat文件雙擊運行測試一下:
sixsV2.1.exe <input.txt >output.txt
pause
木問題!
