Daily Archives: April 9, 2009

5th avenue到处是警察

从街头到巷尾到处都是警察和警车,通到第5大街的小路都关闭了,只剩大路是通行的。听美国同事讲是为了纪念前一周因公殉职的三个警察,在下午1点有个ceremony。美国的警察不好当呀,哪有国内警察威风。

拿手机拍了几个照片,帖在下面。

IMAGE_088 IMAGE_089 IMAGE_085 IMAGE_086 IMAGE_087

qt4与fortran 90的连接

面临的问题是fortran与qt4联编,在qt/c++代码里要访问fortran的4个函数,和很多的数据结构。在c++里全部用extern “C”暴露出来。作了compiler specific的函数名和变量名调整。

试了G95编译fortran代码,与gcc v3进行连接,在传递数组指针时出现问题,疑是编译器级别的问题,无法解决。

找了gfortran,在新版的mingw gcc 4里已经集成里面,重新配置了mingw,安装包如下:

binutils-2.19.1-mingw32-bin
gcc-4.3.0-20080502-mingw32-alpha-bin
mingw32-make-3.81-20080326-2
mingwrt-3.15.2-mingw32-dev
mingwrt-3.15.2-mingw32-dll
w32api-3.13-mingw32-dev

先用gfortran编译了三个f90文件,生成 .o文件,如

gfortran –c module_sf_noahlsm.f90

然后在qt4 pro文件里添加,

OBJECTS += ./module_model_constants.o
./module_Noahlsm_utility.o
./module_sf_noahlsm.o

在LIBS里也需要添加 –lgfortran

qt4编译连接国;过,加载数据测试无误。实现了fortran 90与qt4的一种连接。当然不是最好的方式,有见人在讨论版上说通过修改qt4 spec文件实现直接在pro里添加.f90,调用gfortran直接进行编译,然后相连。这当然是最好的,但对于一般用途,上述方式也足够。