Go to the documentation of this file.00001 SUBROUTINE initgn(isdtyp)
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032 INTEGER numg
00033 PARAMETER (numg=32)
00034
00035
00036 INTEGER isdtyp
00037
00038
00039 INTEGER a1,a1vw,a1w,a2,a2vw,a2w,m1,m2
00040
00041
00042 INTEGER cg1(numg),cg2(numg),ig1(numg),ig2(numg),lg1(numg),
00043 + lg2(numg)
00044 LOGICAL qanti(numg)
00045
00046
00047 INTEGER g
00048
00049
00050 LOGICAL qrgnin
00051 INTEGER mltmod
00052 EXTERNAL qrgnin,mltmod
00053
00054
00055 EXTERNAL getcgn
00056
00057
00058 COMMON /globe/m1,m2,a1,a2,a1w,a2w,a1vw,a2vw,ig1,ig2,lg1,lg2,cg1,
00059 + cg2,qanti
00060
00061
00062 SAVE /globe/
00063
00064
00065
00066 IF (qrgnin()) GO TO 10
00067 WRITE (*,*) ' INITGN called before random number generator ',
00068 + ' initialized -- abort!'
00069 CALL XSTOPX
00070 + (' INITGN called before random number generator initialized')
00071
00072 10 CALL getcgn(g)
00073 IF ((-1).NE. (isdtyp)) GO TO 20
00074 lg1(g) = ig1(g)
00075 lg2(g) = ig2(g)
00076 GO TO 50
00077
00078 20 IF ((0).NE. (isdtyp)) GO TO 30
00079 CONTINUE
00080 GO TO 50
00081
00082 30 IF ((1).NE. (isdtyp)) GO TO 40
00083 lg1(g) = mltmod(a1w,lg1(g),m1)
00084 lg2(g) = mltmod(a2w,lg2(g),m2)
00085 GO TO 50
00086
00087 40 CALL XSTOPX ('ISDTYP NOT IN RANGE')
00088
00089 50 cg1(g) = lg1(g)
00090 cg2(g) = lg2(g)
00091 RETURN
00092
00093 END