24小时热门版块排行榜    

查看: 228  |  回复: 2
当前主题已经存档。

ghfan

新虫 (小有名气)

[交流] 【求助】如何在windows intel visual fortran 中应用define进行预处理

以下是linux下面fortran的一个头文件

#define GEN_ALLOCATE_(object, objsize) \
  if (.not. allocated(object)) then;\
    allocate(object objsize, stat=ioerr);\
    if (ioerr /= 0) call allocateError(__FILE__, __LINE__, ioerr, 1);\
  else;\
    call allocateError(__FILE__, __LINE__, "Array already allocated", 1);\
  endif


#define GEN_DEALLOCATE_(object) \
  if (allocated(object)) then;\
    deallocate(object, stat=ioerr);\
    if (ioerr /= 0) call allocateError(__FILE__,__LINE__,ioerr, 2);\
  endif


#define GEN_INIT_P(ptr) \
  nullify(ptr)


#define GEN_ALLOCATE_P(ptr) \
  if (.not. associated(ptr)) then;\
    allocate(ptr, stat=ioerr);\
    if (ioerr /= 0) call allocateError(__FILE__, __LINE__, ioerr, 3);\
  else;\
    call allocateError(__FILE__, __LINE__, "Ptr. already associated!", 3);\
  endif


#define GEN_DEALLOCATE_P(ptr) \
  if (associated(ptr)) then;\
    deallocate(ptr, stat=ioerr);\
    if (ioerr /= 0) call allocateError(__FILE__, __LINE__, ioerr, 4);\
    GEN_INIT_P(ptr);\
  endif


#define GEN_INIT_PARR(ptr) \
  nullify(ptr)
以上程序的作用是很明显的,想应用define 语句在程序编译前替换成相应的语句,在linux下面用 ifort编译能通过,这是一个头文件的一部分,但是到了windows下面我该怎么改才能实现这种功能呢,我怎么改也不行,看了help,里面只能用define 把一个变量定义一个值,我找不到实现的办法,期待高手解决,万分感谢!!

[ Last edited by ghfan on 2009-3-18 at 17:09 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

sdxuhong

铜虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
ghfan(金币+10,VIP+0):已经解决,多谢,娃子 3-19 22:29
设置好include 路径就好了
2楼2009-03-19 22:28:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

ghfan

新虫 (小有名气)

★ ★
sunxiao(金币+2,VIP+0):谢谢分享经验,欢迎常来 3-20 14:21
必需再编译器里面设置好/fpp 选项,同时要设置好inlude文件的路径,默认/fpp是没有打开的也就是说不能实现以上功能,难怪我编译老是出错,总找不到原因。
3楼2009-03-20 12:06:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 ghfan 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见