66 INTEGER,
INTENT(IN) :: gridtype, numx
67 REAL(DBL),
INTENT (OUT) ::
x(:),
z(:), zx(:), zxx(:)
73 REAL(DBL) :: bpm,bp1,bm1,czx,czxx,
term,term2
77 IF(g_zn%xmax >= 0.0)
then
78 print *,
' ROCBURN_ZN: rank=',g_zn%rank,
' xmax >= 0'
79 print *,
' ROCBURN_ZN: job aborted!'
83 IF(numx.gt.(g_zn%nxmax))
then
84 print *,
' ROCBURN_ZN: rankk=',g_zn%rank,
' numx=',numx, &
86 print *,
' ROCBURN_ZN: nx > maximum number of', &
87 ' allowed spatial nodes'
88 print *,
' ROCBURN_ZN: job aborted!'
92 g_zn%delz = 1.0/dble(numx-1)
94 IF(g_zn%rank ==0)
THEN
95 print *,
' ROCBURN_ZN: delz=',g_zn%delz
96 print *,
' ROCBURN_ZN: nxmax=',g_zn%nxmax
99 IF (gridtype == 1)
THEN
105 z(
i) = dble(
i-1)*g_zn%delz
106 x(
i) = log(1.-
z(
i))/g_zn%beta
110 zx(
i) = -g_zn%beta*exp(g_zn%beta*
x(
i))
111 zxx(
i) = -g_zn%beta**2*exp(g_zn%beta*
x(
i))
122 czx=2.0*g_zn%beta/log(bpm)/g_zn%xmax
123 czxx=-2.0/g_zn%xmax*czx
126 z(
i)=dble(
i-1)*g_zn%delz
129 term2=g_zn%beta**2-(1.0-
x(
i)/g_zn%xmax)**2
131 zxx(
i)= czxx*(1.0-
x(
i)/g_zn%xmax)/term2**2
136 IF(g_zn%rank == 0)
THEN
138 WRITE (*,*)
' ROCBURN_ZN: Smallest delta x = ',
x(1)-
x(2)
139 WRITE (*,*)
' ROCBURN_ZN: Largest delta x = ',
x(numx-1)-
x(numx)
subroutine zn_gen_grid(G_ZN, gridtype, numx, x, z, zx, zxx)
void int int int REAL REAL REAL * z