# Copyright(c) 1986 Association of Universities for Research in Astronomy Inc. $if (datatype == r) include "gsurfitdef.h" $else include "dgsurfitdef.h" $endif # GSFREE -- Procedure to free the surface descriptor $if (datatype == r) procedure gsfree (sf) $else procedure dgsfree (sf) $endif pointer sf # the surface descriptor errchk mfree begin if (sf == NULL) return $if (datatype == r) if (GS_XBASIS(sf) != NULL) call mfree (GS_XBASIS(sf), TY_REAL) if (GS_YBASIS(sf) != NULL) call mfree (GS_YBASIS(sf), TY_REAL) if (GS_MATRIX(sf) != NULL) call mfree (GS_MATRIX(sf), TY_REAL) if (GS_CHOFAC(sf) != NULL) call mfree (GS_CHOFAC(sf), TY_REAL) if (GS_VECTOR(sf) != NULL) call mfree (GS_VECTOR(sf), TY_REAL) if (GS_COEFF(sf) != NULL) call mfree (GS_COEFF(sf), TY_REAL) if (GS_WZ(sf) != NULL) call mfree (GS_WZ(sf), TY_REAL) $else if (GS_XBASIS(sf) != NULL) call mfree (GS_XBASIS(sf), TY_DOUBLE) if (GS_YBASIS(sf) != NULL) call mfree (GS_YBASIS(sf), TY_DOUBLE) if (GS_MATRIX(sf) != NULL) call mfree (GS_MATRIX(sf), TY_DOUBLE) if (GS_CHOFAC(sf) != NULL) call mfree (GS_CHOFAC(sf), TY_DOUBLE) if (GS_VECTOR(sf) != NULL) call mfree (GS_VECTOR(sf), TY_DOUBLE) if (GS_COEFF(sf) != NULL) call mfree (GS_COEFF(sf), TY_DOUBLE) if (GS_WZ(sf) != NULL) call mfree (GS_WZ(sf), TY_DOUBLE) $endif if (sf != NULL) call mfree (sf, TY_STRUCT) end