1
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3
! MIDAS procedure genran.prg to implement CREATE/RANDOM_IMAGE
4
! K. Banse ESO - Garching 030707
6
! execute via @a genran outfr ndim wcoo func_type coeffs seed
7
! or @a genran outfr = refima func_type coeffs seed
9
! ndim = NAXIS,NPIX(1),NPIX(2),NPIX(3)
10
! wcoo = START(1),...,STEP(3)
11
! func_type = U(niform),U_opt coeffs = lower,upper limits
12
! U_opt = F(ibonnacci) for the lagged Fibonacci random generator
13
! U_opt = S(tandard) for a standard normalized random generator
14
! G(aussian) coeffs = mean,sigma
15
! n.i.y. E(xponential)
18
! n.i.y. P(oisson) coeffs = mean
21
! seed = seed for the random generators
22
! same seed yields same result in successive runs
26
!++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
28
define/param p1 ? ima "Enter result frame: "
31
if p2(1:1) .ne. "=" then ! dimensions given explicitly
32
define/param p2 2,64,64 N "Enter Naxis,Npix(1),Npix(2),... : "
34
define/param p3 0.,1. N "Enter Start(1),Step(1): "
35
elseif {p2} .eq. 2 then
36
define/param p3 0.,0.,1.,1. N "Enter Start(1),Start(2),Step(1),Step(2): "
38
define/param p3 0.,0.,0.,1.,1.,1. N -
39
"Enter Start(1),Start(2),Start(3),Step(1),Step(2),Step(3): "
41
define/local id/i/1/4 {p2}
42
define/local rd/d/1/6 {p3}
43
in_a = "+ " ! make sure, IN_A is set to "+"
45
define/param p3 ? ima "Enter reference frame: "
49
outputi(1) = m$secs()/1237
51
define/param p4 UNIFORM C "Enter function type: "
52
define/param p5 0.,1. N "Enter coefficients: "
53
define/param p6 {outputi(1)} N "Enter seed value: "
55
write/keyw HISTORY "create/random "
56
define/local rcoeff/r/1/2 {p5}
57
define/local seed/i/1/1 {p6}
58
run MID_EXE:genran.exe