Sujet : Re: Fortran, no RAN ?
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vmsDate : 17. Jun 2024, 23:12:06
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <v4qcbm$urij$1@dont-email.me>
References : 1 2 3
User-Agent : Mozilla Thunderbird
On 6/17/2024 12:09 AM, Michael Brown wrote:
On 17/6/24 03:54, Arne Vajhøj wrote:
On 6/16/2024 12:22 PM, Michael Brown wrote:
I've been building MTREK, written in fortran, on my community edition and it compiles fine but complains of no RAN function at link time.
>
VMS Fortran got both RAN and the standard RANDOM_NUMBER:
That example was very reassuring when it compiled and ran, so I looked more carefully at my compiler warnings compiling MTREK...
RNDOM = RAN(I1, I2)
..................^
%F90-W-WARNING, The number of arguments is incompatible with intrinsic procedure, assume 'external'. [RAN]
at line number 67 in file SYS$SYSDEVICE:[MBROWN.DEVS.MTREK]mtrekini.for;4
and it is telling me the problem, assumed external because of too many parameters, then it tries to link some external name RAN which isn't there. I can understand this.
But the question now is why RAN(I1, I2) works on the VAX compiler,and not on the X86_64 compiler. And what is it doing with those 2 parameters on the VAX so I can simulate it somehow.
Are you sure that it is intrinsic and not something picked
up from some library?
What type is RNDOM? Default REAL*4? Or Integer*4?
If INTEGER*4 then my guess would be that:
RAN(I1, I2)
is:
RAN_INT_IN_INTERVAL(LOW_BOUND, HIGH_BOUND)
Arne