/*  
 *  - - - - - - - - - -  
 *   g a l _ g m c p y  
 *  - - - - - - - - - -  
 *  
 *  This routine is part of the General Astrodynamics Library  
 *
 *  Description:
 *
 *     This routine allocates memory and populates it with all or a subset of a gravity model. 
 *  
 *  Status: 
 *  
 *     support routine.  
 *  
 *  Given:  
 *
 *     *gm1           gal_gm_t      Pointer to source gravity model structure to copy
 *     maxn             i           Maximum degree to be returned
 *     maxm	            i           Maximum order to be returned
 *     norm             i           1 = spherical terms are to be normalized
 *                                  0 = spherical terms are to be unnormalized
 *  
 *  Returned:  
 *  
 *     *gal_gmcpy     gal_gm_t      pointer to the new gravity model structure
 *  
 *  Notes:  
 *  
 *  1) This function additionally allows the user to limit the maximum degree 
 *     and order of the coefficients to be included, useful when the full accuracy 
 *     of the model is not required. If a maximum degree or order is requested 
 *     greater than that provided for the base model then the higher unknown 
 *     coefficients are set to zero.
 *
 *  2) If the routine is unable to allocate memory then NULL is returned.
 *  
 *  Called:  
 *  
 *     gal_gmalloc                  Create blank gravity model structure
 *     gal_gmnorm                   Normalize spherical terms
 *     gal_gmunnorm                 Un-Normalize spherical terms
 *  
 *  This revision:  
 * 
 *     2008 March 23 
 *  
 *  Copyright (C) 2008 Paul C. L. Willmott. See notes at end. 
 *  
 *-----------------------------------------------------------------------  
 */  

#ifndef _GAL_GMCPY_H_  
#define _GAL_GMCPY_H_ 1  

#include "gal_gm.h"
  
#undef  __BEGIN_DECLS  
#undef  __END_DECLS  
#ifdef  __cplusplus  
#define __BEGIN_DECLS extern "C" {  
#define __END_DECLS }  
#else  
#define __BEGIN_DECLS /* empty */  
#define __END_DECLS   /* empty */  
#endif
  
__BEGIN_DECLS  

gal_gm_t *  
gal_gmcpy
  (
    gal_gm_t *gm1,
    int maxn,
    int maxm,
    int norm
  ) ;
 
__END_DECLS  
  
#endif /* !_GAL_GMCPY_ */ 

/*
 *  gal - General Astrodynamics Library  
 *  Copyright (C) 2008 Paul C. L. Willmott  
 *  
 *  This program is free software; you can redistribute it and/or modify  
 *  it under the terms of the GNU General Public License as published by  
 *  the Free Software Foundation; either version 2 of the License, or  
 *  (at your option) any later version.  
 *  
 *  This program is distributed in the hope that it will be useful,  
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of  
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the  
 *  GNU General Public License for more details.  
 *  
 *  You should have received a copy of the GNU General Public License along  
 *  with this program; if not, write to the Free Software Foundation, Inc.,  
 *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.  
 *    
 *  Contact:  
 *    
 *  Paul Willmott  
 *  vp9mu@amsat.org  
 */  
  
