[Mew-Win32 00496] Re: fiber
Hidefumi Fujimoto
fujimoto.h at example.com
1998年 3月 24日 (火) 14:03:58 JST
お世話になっております。
>>>>> On Tue, 24 Mar 98 04:01:51 UT
>>>>> hideki-nogu at example.com("Hideki Noguchi") said:
Noguchi> お借りできないでしょうか?Imagに相当するものが、一般的な関数に
Noguchi> 見つからないものですので、、、
aimag は無いのでしょうか? これは、通常のfortranの組み込み関数としてあ
ると思います。
Noguchi> fallocの、引数の説明書の様なものはございませんでしょうか?
-----------------------------------------------------------------------------
MALLOC(3F) MALLOC(3F)
+U77 FORTRAN compile-line option required
NAME
malloc, free, falloc - memory allocator
SYNOPSIS
subroutine malloc (size, addr)
INTEGER*4 size, addr
subroutine free (addr)
INTEGER*4 addr
subroutine falloc (nelem, elsize, clean, basevec, addr, offset)
INTEGER*4 nelem, elsize, clean, addr, offset
DESCRIPTION
Malloc, falloc and free provide a general-purpose memory allocation
package. Malloc returns in addr the address of a block of at least
size bytes suitably aligned for storage of any type of object.
Falloc allocates space for an array of nelem elements of size elsize
and returns the address of the block in addr. It zeros the block if
clean is 1. It returns in offset an index such that the storage may
be addressed as basevec(offset+1) ... basevec(offset+nelem). Basevec
is an input argument to falloc and should be declared as an array.
Falloc gets extra bytes so that after address arithmetic, all the
objects so addressed are within the block.
The argument to free is the address of a block previously allocated by
malloc or falloc; this space is made available for further allocation,
but its contents are left undisturbed. To free blocks allocated by
falloc, use addr in calls to free, do not use basevec(offset+1).
Needless to say, grave disorder will result if the space assigned by
malloc or falloc is overrun or if some random number is handed to
free.
DIAGNOSTICS
Malloc and falloc set addr to 0 if there is no available memory or if
the arena has been detectably corrupted by storing outside the bounds
of a block.
The following example shows how to obtain memory and use it within a
subprogram:
INTEGER*4 n, addr, work(1), offset
...
call falloc ( n, 4J, 0J, work, addr, offset )
do 10 i = 1, n
work(offset+i) = ...
10 continue
MALLOC(3F) MALLOC(3F)
+U77 FORTRAN compile-line option required
The next example reads in dimension information, allocates space for
two arrays and two vectors, and calls subroutine doit to do the
computations:
INTEGER*4 indtot, addr, dummy(1), offs
read *, k, l, m
indm1 = 1
indm2 = indm1 + k*l
indm3 = indm2 + l*m
indsym = indm3 + k*m
lsym = n*(n+1)/2
indv = indsym + lsym
indtot = indv + m
call falloc ( indtot, 4J, 0J, dummy, addr, offs )
call doit( dummy(indm1+offs), dummy(indm2+offs),
. dummy(indm3+offs), dummy(indsym+offs),
. dummy(indv +offs), m, n, lsym )
end
subroutine doit( arr1, arr2, arr3, vsym, vec, m, n, lsym )
real arr1(k,l), arr2(l,m), arr3(k,m), vsym(lsym), v2(m)
...
FILES
/usr/lib/libU77.a
SEE ALSO
malloc(3)
-----------------------------------------------------------------------------
--
#####################
藤本 英史 ( Hidefumi Fujimoto )
MAZDA Motor Corporation Technical Research Center
住所 : 〒730-91 広島県安芸郡府中町新地3番1号
TEL : 082-252-5018 FAX : 082-252-5343
Email: fujimoto.h at example.com fujimoto at example.com
#####################
Mew-win32 メーリングリストの案内