1*-----------------------------------------------------------------------
2*     USPACK ROUND UMIN AND UMAX (UNIFORM)            S.Sakai  95/09/06
3*-----------------------------------------------------------------------
4*     Copyright (C) 2000-2004 GFD Dennou Club. All rights reserved.
5*-----------------------------------------------------------------------
6      SUBROUTINE USURDT(UMIN, UMAX, VMIN, VMAX, DUT)
7
8      REAL      SC1 (4)
9      LOGICAL   LEPSL, LREQ
10      SAVE
11      DATA      SC1 / 1., 2., 5., 10./
12
13*------------------------- ARGUMENT CHECK ------------------------------
14
15      IF(UMIN.GT.UMAX)
16     &   CALL MSGDMP('E', 'USURDT', 'UMIN > UMAX.')
17
18      IF(VMIN.GT.VMAX)
19     &   CALL MSGDMP('E', 'USURDT', 'VMIN > VMAX.')
20
21*-----------------------------------------------------------------------
22
23      CALL GNSAVE
24      CALL GNSBLK(SC1, 4)
25      CALL GLLGET('LEPSL', LEPSL)
26      CALL GLLSET('LEPSL', .TRUE.)
27
28      IF(LREQ(UMAX,UMIN)) THEN
29        IF(LREQ(UMAX,0.)) THEN
30          UMAX = 1.
31          UMIN = -1
32        ELSE
33          UMAX = MAX(UMAX, 0.)
34          UMIN = MIN(UMIN, 0.)
35        ENDIF
36      ENDIF
37
38*-----------------------------------------------------------------------
39
40      CALL USRGET('TFACT'   , CT)
41      CALL UZRGET('RSIZEL1' , CW)
42      DVT  = CW*CT
43
44      DO 100 I=1, 2
45        DUT = ABS( (UMAX-UMIN)/(VMAX-VMIN)*DVT )
46        CALL GNLE(DUT, BX, IEXP)
47        DUT = BX*1.D1**IEXP
48        UMAX = DUT * IRGE(UMAX/DUT)
49        UMIN = DUT * IRLE(UMIN/DUT)
50  100 CONTINUE
51
52      CALL GLLSET('LEPSL', LEPSL)
53      CALL GNRSET
54
55      END
56