@@ -59,114 +59,16 @@ subroutine s_generate_serial_grid
5959 ! Generic loop iterator
6060 integer :: i, j ! < generic loop operators
6161 real (kind (0d0 )) :: length ! < domain lengths
62- real (kind (0d0 )) :: sum_factors, base_dx ! < sum of factors for normalization
63- real (kind (0d0 )) :: factor(0 :200 ) ! < factor for non-uniform grid; hard-coded for m=200
64-
65- ! ! Grid Generation in the x-direction ===============================
66- ! dx = (x_domain%end - x_domain%beg)/real(m + 1, kind(0d0))
67-
68- ! do i = 0, m
69- ! x_cc(i) = x_domain%beg + 5d-1*dx*real(2*i + 1, kind(0d0))
70- ! x_cb(i - 1) = x_domain%beg + dx*real(i, kind(0d0))
71- ! end do
72-
73- ! x_cb(m) = x_domain%end
74-
75- ! Hard-coded non-uniform grid for debugging
76-
77- ! do i = 0, m
78- ! ! Example: factor oscillates between 1 and 100
79- ! ! Using multiple sine terms for more variation
80- ! factor(i) = 10.0d0 + 90.0d0 * &
81- ! ( 0.5d0 * (1.0d0 + sin(2.0d0 * pi * i / m)) + &
82- ! 0.3d0 * (1.0d0 + cos(4.0d0 * pi * i / m)) )
83- ! ! ( 0.5d0 * (1.0d0 + sin(17.0d0 * pi * i / m)) + &
84- ! ! 0.3d0 * (1.0d0 + cos(31.0d0 * pi * i / m)) )
85- ! ! Ensure factor is within desired range
86- ! ! if (mod(i, 2) == 0) factor(i) = factor(i) / 2.0d0
87- ! ! if (mod(i, 3) == 0) factor(i) = factor(i) * 3.0d0
88- ! ! if (mod(i, 5) == 0) factor(i) = factor(i) / 5.0d0
89- ! ! if (mod(i, 7) == 0) factor(i) = factor(i) * 7.0d0
90- ! if (factor(i) < 10.0d0) factor(i) = 10.0d0
91- ! if (factor(i) > 100.0d0) factor(i) = 100.0d0
92- ! end do
93-
94- ! ! Compute the sum of factors for normalization
95- ! sum_factors = 0.0d0
96- ! do i = -1, m
97- ! sum_factors = sum_factors + factor(i)
98- ! end do
99-
100- ! ! Compute base grid spacing
101- ! base_dx = (x_domain%end - x_domain%beg) / sum_factors
102-
103- ! ! Compute cell boundaries
104- ! x_cb(-1) = x_domain%beg + base_dx * factor(-1)
105- ! do i = 0, m
106- ! x_cb(i) = x_cb(i-1) + base_dx * factor(i)
107- ! end do
108- ! x_cb(m) = x_domain%end
109-
110-
111- ! Hard-coded for Shu-Osher
112- factor(0 :19 ) = 2d0 / 20d0
113- factor(20 :180 ) = 6d0 / 161d0
114- factor(181 :200 ) = 2d0 / 20d0
115- do i = 0 , 200
116- factor(i) = factor(i) * (1.1d0 + sin (real (i, kind (0d0 ))))
117- ! if (i == 0) then
118- ! print *, sin(pi * real(i, kind(0d0)) / 10d0)
119- ! print *, pi * real(i, kind(0d0)) / 10d0
120- ! print *, pi * real(i, kind(0d0))
121- ! print *, real(i, kind(0d0))
122- ! print *, pi
123- ! print *, i
124- ! print *, ' '
125- ! print *, factor(i)
126- ! print *, ' '
127- ! print *, ' '
128- ! print *, ' '
129- ! print *, ' '
130- ! print *, ' -----------------'
131- ! end if
132- end do
13362
134- print * , factor
135-
136- factor = factor / sum (factor) * 10d0
137-
138- print * , factor
139-
140- ! x_cb(-1) = 0d0
141- ! dx = 2d0/20d0
142- ! do i = 0, 19
143- ! x_cb(i) = x_cb(i-1) + dx
144- ! end do
145- ! dx = 6d0/161d0
146- ! do i = 20, 180
147- ! x_cb(i) = x_cb(i-1) + dx
148- ! end do
149- ! dx = 2d0/20d0
150- ! do i = 181, 200
151- ! x_cb(i) = x_cb(i-1) + dx
152- ! end do
153- x_cb(- 1 ) = 0d0
154- do i = 0 , 200
155- x_cb(i) = sum (factor(0 :i))
63+ ! Grid Generation in the x-direction ===============================
64+ dx = (x_domain% end - x_domain% beg)/ real (m + 1 , kind (0d0 ))
65+
66+ do i = 0 , m
67+ x_cc(i) = x_domain% beg + 5d-1 * dx* real (2 * i + 1 , kind (0d0 ))
68+ x_cb(i - 1 ) = x_domain% beg + dx* real (i, kind (0d0 ))
15669 end do
157- x_cb(200 ) = 10d0
158-
159- x_cc = (x_cb(0 :m) + x_cb(- 1 :m - 1 ))/ 2d0
160-
161- dx = minval (x_cb(0 :m) - x_cb(- 1 :m - 1 ))
162-
163- print * , ' '
164- print * , size (x_cb)
165- print * , x_cb
166- print * , ' '
167- print * , size (x_cc)
168- print * , x_cc
169-
70+
71+ x_cb(m) = x_domain% end
17072
17173 if (stretch_x) then
17274
0 commit comments