V3FIT
ezspline_free.f90
1 !/////
2 ! R8 !
3 !/////
4 subroutine ezspline_free1_r8(spline_o, ier)
5  use ezspline_obj
6  implicit none
7  type(EZspline1_r8) spline_o
8  ! ier:
9  ! 101= warning, spline object was never allocated
10  integer, intent(out) :: ier
11  integer ifail
12 
13  ier = 0
14  if(.not.ezspline_allocated(spline_o)) ier=101
15 
16  deallocate(spline_o%x1, stat=ifail)
17  deallocate(spline_o%fspl, stat=ifail)
18  deallocate(spline_o%x1pkg, stat=ifail)
19 
20  call ezspline_preinit(spline_o)
21 
22  spline_o%n1 = 0
23 
24  return
25 end subroutine ezspline_free1_r8
26 
27 
28 subroutine ezspline_free2_r8(spline_o, ier)
29  use ezspline_obj
30  implicit none
31  type(EZspline2_r8) spline_o
32  ! ier:
33  ! 101= warning, spline object was never allocated
34  integer, intent(out) :: ier
35  integer ifail
36 
37  ier = 0
38  if(.not.ezspline_allocated(spline_o)) ier=101
39 
40  deallocate(spline_o%x1, stat=ifail)
41  deallocate(spline_o%x2, stat=ifail)
42  deallocate(spline_o%fspl, stat=ifail)
43  deallocate(spline_o%bcval1min, stat=ifail)
44  deallocate(spline_o%bcval1max, stat=ifail)
45  deallocate(spline_o%bcval2min, stat=ifail)
46  deallocate(spline_o%bcval2max, stat=ifail)
47  deallocate(spline_o%x1pkg, stat=ifail)
48  deallocate(spline_o%x2pkg, stat=ifail)
49 
50  call ezspline_preinit(spline_o)
51 
52  spline_o%n1 = 0
53  spline_o%n2 = 0
54 
55  return
56 end subroutine ezspline_free2_r8
57 
58 
59 subroutine ezspline_free3_r8(spline_o, ier)
60  use ezspline_obj
61  implicit none
62  type(EZspline3_r8) spline_o
63  ! ier:
64  ! 101= warning, spline object was never allocated
65  integer, intent(out) :: ier
66  integer ifail
67 
68  ier = 0
69  if(.not.ezspline_allocated(spline_o)) ier=101
70 
71  deallocate(spline_o%x1, stat=ifail)
72  deallocate(spline_o%x2, stat=ifail)
73  deallocate(spline_o%x3, stat=ifail)
74  deallocate(spline_o%fspl, stat=ifail)
75  deallocate(spline_o%bcval1min, stat=ifail)
76  deallocate(spline_o%bcval1max, stat=ifail)
77  deallocate(spline_o%bcval2min, stat=ifail)
78  deallocate(spline_o%bcval2max, stat=ifail)
79  deallocate(spline_o%bcval3min, stat=ifail)
80  deallocate(spline_o%bcval3max, stat=ifail)
81  deallocate(spline_o%x1pkg, stat=ifail)
82  deallocate(spline_o%x2pkg, stat=ifail)
83  deallocate(spline_o%x3pkg, stat=ifail)
84 
85  call ezspline_preinit(spline_o)
86 
87  spline_o%n1 = 0
88  spline_o%n2 = 0
89  spline_o%n3 = 0
90 
91  return
92 end subroutine ezspline_free3_r8
93 !/////
94 ! R4 !
95 !/////
96 subroutine ezspline_free1_r4(spline_o, ier)
97  use ezspline_obj
98  implicit none
99  type(EZspline1_r4) spline_o
100  ! ier:
101  ! 101= warning, spline object was never allocated
102  integer, intent(out) :: ier
103  integer ifail
104 
105  ier = 0
106  if(.not.ezspline_allocated(spline_o)) ier=101
107 
108  deallocate(spline_o%x1, stat=ifail)
109  deallocate(spline_o%fspl, stat=ifail)
110  deallocate(spline_o%x1pkg, stat=ifail)
111 
112  call ezspline_preinit(spline_o)
113 
114  spline_o%n1 = 0
115 
116  return
117 end subroutine ezspline_free1_r4
118 
119 
120 subroutine ezspline_free2_r4(spline_o, ier)
121  use ezspline_obj
122  implicit none
123  type(EZspline2_r4) spline_o
124  ! ier:
125  ! 101= warning, spline object was never allocated
126  integer, intent(out) :: ier
127  integer ifail
128 
129  ier = 0
130  if(.not.ezspline_allocated(spline_o)) ier=101
131 
132  deallocate(spline_o%x1, stat=ifail)
133  deallocate(spline_o%x2, stat=ifail)
134  deallocate(spline_o%fspl, stat=ifail)
135  deallocate(spline_o%bcval1min, stat=ifail)
136  deallocate(spline_o%bcval1max, stat=ifail)
137  deallocate(spline_o%bcval2min, stat=ifail)
138  deallocate(spline_o%bcval2max, stat=ifail)
139  deallocate(spline_o%x1pkg, stat=ifail)
140  deallocate(spline_o%x2pkg, stat=ifail)
141 
142  call ezspline_preinit(spline_o)
143 
144  spline_o%n1 = 0
145  spline_o%n2 = 0
146 
147  return
148 end subroutine ezspline_free2_r4
149 
150 
151 subroutine ezspline_free3_r4(spline_o, ier)
152  use ezspline_obj
153  implicit none
154  type(EZspline3_r4) spline_o
155  ! ier:
156  ! 101= warning, spline object was never allocated
157  integer, intent(out) :: ier
158  integer ifail
159 
160  ier = 0
161  if(.not.ezspline_allocated(spline_o)) ier=101
162 
163  deallocate(spline_o%x1, stat=ifail)
164  deallocate(spline_o%x2, stat=ifail)
165  deallocate(spline_o%x3, stat=ifail)
166  deallocate(spline_o%fspl, stat=ifail)
167  deallocate(spline_o%bcval1min, stat=ifail)
168  deallocate(spline_o%bcval1max, stat=ifail)
169  deallocate(spline_o%bcval2min, stat=ifail)
170  deallocate(spline_o%bcval2max, stat=ifail)
171  deallocate(spline_o%bcval3min, stat=ifail)
172  deallocate(spline_o%bcval3max, stat=ifail)
173  deallocate(spline_o%x1pkg, stat=ifail)
174  deallocate(spline_o%x2pkg, stat=ifail)
175  deallocate(spline_o%x3pkg, stat=ifail)
176 
177  call ezspline_preinit(spline_o)
178 
179  spline_o%n1 = 0
180  spline_o%n2 = 0
181  spline_o%n3 = 0
182 
183  return
184 end subroutine ezspline_free3_r4
ezspline_obj::ezspline_allocated
Definition: ezspline_obj.f90:19
ezspline_obj::ezspline_preinit
Definition: ezspline_obj.f90:3