查看“Fortran程序调用”的源代码
←
Fortran程序调用
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
先要给要调用的Fortran程序写一个接口,例 接口程序: SUBROUTINE SUM_ARRAY(argc, argv) !Called by IDL INTEGER*4 argc, argv(*) !Argc and Argv are integers j = LOC(argc) !Obtains the number of arguments (argc) !Because argc is passed by VALUE. ; ! Call subroutine SUM_ARRAY1, converting the IDL parameters ! to standard Fortran, passed by reference arguments: CALL SUM_ARRAY1(%VAL(argv(1)), %VAL(argv(2)), %VAL(argv(3))) RETURN END 调用程序: ! This subroutine is called by SUM_ARRAY and has no IDL specific code. SUBROUTINE SUM_ARRAY1(array, n, sum) INTEGER*4 n REAL*4 array(n), sum sum=0.0 DO i=1,n sum = sum + array(i) ENDDO RETURN END 编译生成动态链接库文件 ifort -shared -fpic SUM_ARRAY.f SUM_ARRAY1.f -o example1.so -shared produce a shared object -fpic generate position independent code (-fno-pic/-fno-PIC is DEFAULT) 然后在IDL中的调用方法如下 X = FINDGEN(10) ; Make an array. sum = 0.0 S = CALL_EXTERNAL('example1.so', 'sum_array_', X, N_ELEMENTS(X), sum)
返回至“
Fortran程序调用
”。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
已展开
已折叠
查看
阅读
查看源代码
查看历史
更多
已展开
已折叠
搜索
导航
首页
社群首页
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息