从来没见过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
木问题!