aboutsummaryrefslogtreecommitdiff
path: root/noao/astutil/pdm/pdmclose.x
diff options
context:
space:
mode:
authorJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
committerJoe Hunkeler <jhunkeler@gmail.com>2015-08-11 16:51:37 -0400
commit40e5a5811c6ffce9b0974e93cdd927cbcf60c157 (patch)
tree4464880c571602d54f6ae114729bf62a89518057 /noao/astutil/pdm/pdmclose.x
downloadiraf-osx-40e5a5811c6ffce9b0974e93cdd927cbcf60c157.tar.gz
Repatch (from linux) of OSX IRAF
Diffstat (limited to 'noao/astutil/pdm/pdmclose.x')
-rw-r--r--noao/astutil/pdm/pdmclose.x63
1 files changed, 63 insertions, 0 deletions
diff --git a/noao/astutil/pdm/pdmclose.x b/noao/astutil/pdm/pdmclose.x
new file mode 100644
index 00000000..b7e4541e
--- /dev/null
+++ b/noao/astutil/pdm/pdmclose.x
@@ -0,0 +1,63 @@
+include <mach.h>
+include "pdm.h"
+
+# PDM_CLOSE -- Close a PDM data structure.
+
+procedure pdm_close (pdmp, interactive)
+
+pointer pdmp # PDM structure pointer
+bool interactive # interactive flag
+
+begin
+ # Close icfit pointers, curfit pointers, and graphics pointers,
+ # and the ranges pointer.
+
+ if (PDM_ICD(pdmp) != NULL)
+ call ic_closed (PDM_ICD(pdmp))
+ if (PDM_ICP(pdmp) != NULL)
+ call ic_closed (PDM_ICP(pdmp))
+ if (PDM_CVD(pdmp) != NULL)
+ call dcvfree (PDM_CVD(pdmp))
+ if (PDM_CVP(pdmp) != NULL)
+ call dcvfree (PDM_CVP(pdmp))
+ if (PDM_GT(pdmp) != NULL)
+ call gt_free (PDM_GT(pdmp))
+ if (PDM_GP(pdmp) != NULL)
+ call gclose (PDM_GP(pdmp))
+ if (PDM_RG(pdmp) != NULL)
+ call rg_free (PDM_RG(pdmp))
+ if (PDM_LFD(pdmp) != NULL)
+ call close (PDM_LFD(pdmp))
+ if (!interactive)
+ if (PDM_PFD(pdmp) != NULL)
+ call close (PDM_PFD(pdmp))
+
+ # Free the data vectors.
+ if (PDM_XP(pdmp) != NULL)
+ call mfree (PDM_XP(pdmp), TY_DOUBLE)
+ if (PDM_ODYP(pdmp) != NULL)
+ call mfree (PDM_ODYP(pdmp), TY_DOUBLE)
+ if (PDM_DYP(pdmp) != NULL)
+ call mfree (PDM_DYP(pdmp), TY_DOUBLE)
+ if (PDM_ERRP(pdmp) != NULL)
+ call mfree (PDM_ERRP(pdmp), TY_REAL)
+ if (PDM_INUSEP(pdmp) != NULL)
+ call mfree (PDM_INUSEP(pdmp), TY_INT)
+ if (PDM_XTHP(pdmp) != NULL)
+ call mfree (PDM_XTHP(pdmp), TY_DOUBLE)
+ if (PDM_YTHP(pdmp) != NULL)
+ call mfree (PDM_YTHP(pdmp), TY_DOUBLE)
+ if (PDM_XPHP(pdmp) != NULL)
+ call mfree (PDM_XPHP(pdmp), TY_DOUBLE)
+ if (PDM_YPHP(pdmp) != NULL)
+ call mfree (PDM_YPHP(pdmp), TY_DOUBLE)
+ if (PDM_PHERRP(pdmp) != NULL)
+ call mfree (PDM_PHERRP(pdmp), TY_REAL)
+ if (PDM_SORTP(pdmp) != NULL)
+ call mfree (PDM_SORTP(pdmp), TY_INT)
+ if (PDM_SAMPLEP(pdmp) != NULL)
+ call mfree (PDM_SAMPLEP(pdmp), TY_CHAR)
+
+ # Free the pdm data structure.
+ call mfree (pdmp, TY_STRUCT)
+end