Fortran 77 dynamic memory allocation 2# Computation - 科学计算
y*r
1 楼
不用cray pointer也可以,可以使用libU77中的MALLOC和FREE,可惜不是所有系统都
支持。但假如自己用C做一个EXTENSION,就可以了。
下面的程序的编译方法:
cc -c alloc.c
f77 memtest.f alloc.o
>>>>>>> memtest.f <<<<<<<<<<<
implicit none
integer*4 n, i
integer*4 addr
integer*4 offset
real*8 work(1)
C common /works/ work
n = 10
call cmalloc(N*N, 8, 0, work, addr, offset)
call test(N, WORK(offset+1))
call cfree(addr)
end
C
subroutine test(N,R)
implicit none
integer*4
支持。但假如自己用C做一个EXTENSION,就可以了。
下面的程序的编译方法:
cc -c alloc.c
f77 memtest.f alloc.o
>>>>>>> memtest.f <<<<<<<<<<<
implicit none
integer*4 n, i
integer*4 addr
integer*4 offset
real*8 work(1)
C common /works/ work
n = 10
call cmalloc(N*N, 8, 0, work, addr, offset)
call test(N, WORK(offset+1))
call cfree(addr)
end
C
subroutine test(N,R)
implicit none
integer*4