@@ -3,15 +3,15 @@ MODULE GLOBAL
33
44IMPLICIT NONE
55
6- CHARACTER (* ), PARAMETER :: VERSION = ' 1.1.3 '
6+ CHARACTER (* ), PARAMETER :: VERSION = ' 1.1.4 '
77
8- INTEGER , PARAMETER :: STACK_SIZE = 4 ! stack size
8+ INTEGER :: STACK_SIZE ! stack size
99INTEGER , PARAMETER :: REG_SIZE = 10 ! number of storage registers
10- real (wp), DIMENSION (STACK_SIZE) :: STACK ! real stack
10+ real (wp), allocatable :: STACK(:) ! real stack
1111real (wp), DIMENSION (0 :REG_SIZE-1 ) :: REG ! real storage registers
12- COMPLEX (wp), DIMENSION (STACK_SIZE) :: CSTACK ! complex stack
12+ COMPLEX (wp), allocatable :: CSTACK(:) ! complex stack
1313COMPLEX (wp), DIMENSION (0 :REG_SIZE-1 ) :: CREG ! complex storage registers
14- INTEGER , DIMENSION (STACK_SIZE) :: RNSTACK, RDSTACK ! rational stack
14+ INTEGER , allocatable :: RNSTACK(:) , RDSTACK(:) ! rational stack
1515INTEGER , DIMENSION (0 :REG_SIZE-1 ) :: RNREG, RDREG ! rational storage registers
1616real (wp) :: LASTX ! real LAST X register
1717COMPLEX (wp) :: CLASTX ! complex LAST X register
@@ -32,4 +32,21 @@ MODULE GLOBAL
3232INTEGER , PARAMETER :: INITIAL_FRACTION_MODE = 1 ! 1=improper, 2=mixed
3333real (wp), PARAMETER :: INITIAL_FRACTOL = 1.0D-4 ! tolerance for decimal to fraction conversion
3434
35+
36+ contains
37+
38+
39+ subroutine init_stack ()
40+
41+ integer :: i
42+ character (16 ) :: argv
43+
44+ stack_size= 4 ! default
45+ call get_command_argument(1 , argv, status= i)
46+ if (i== 0 ) read (argv,' (I2)' ) stack_size
47+
48+ allocate (stack(stack_size), cstack(stack_size), rdstack(stack_size), rnstack(stack_size))
49+
50+ end subroutine init_stack
51+
3552END MODULE GLOBAL
0 commit comments