1 /*
2  * -- High Performance Computing Linpack Benchmark (HPL)
3  *    HPL - 2.3 - December 2, 2018
4  *    Antoine P. Petitet
5  *    University of Tennessee, Knoxville
6  *    Innovative Computing Laboratory
7  *    (C) Copyright 2000-2008 All Rights Reserved
8  *
9  * -- Copyright notice and Licensing terms:
10  *
11  * Redistribution  and  use in  source and binary forms, with or without
12  * modification, are  permitted provided  that the following  conditions
13  * are met:
14  *
15  * 1. Redistributions  of  source  code  must retain the above copyright
16  * notice, this list of conditions and the following disclaimer.
17  *
18  * 2. Redistributions in binary form must reproduce  the above copyright
19  * notice, this list of conditions,  and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution.
21  *
22  * 3. All  advertising  materials  mentioning  features  or  use of this
23  * software must display the following acknowledgement:
24  * This  product  includes  software  developed  at  the  University  of
25  * Tennessee, Knoxville, Innovative Computing Laboratory.
26  *
27  * 4. The name of the  University,  the name of the  Laboratory,  or the
28  * names  of  its  contributors  may  not  be used to endorse or promote
29  * products  derived   from   this  software  without  specific  written
30  * permission.
31  *
32  * -- Disclaimer:
33  *
34  * THIS  SOFTWARE  IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
35  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,  INCLUDING,  BUT NOT
36  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
37  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE UNIVERSITY
38  * OR  CONTRIBUTORS  BE  LIABLE FOR ANY  DIRECT,  INDIRECT,  INCIDENTAL,
39  * SPECIAL,  EXEMPLARY,  OR  CONSEQUENTIAL DAMAGES  (INCLUDING,  BUT NOT
40  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
41  * DATA OR PROFITS; OR BUSINESS INTERRUPTION)  HOWEVER CAUSED AND ON ANY
42  * THEORY OF LIABILITY, WHETHER IN CONTRACT,  STRICT LIABILITY,  OR TORT
43  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
44  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
45  * ---------------------------------------------------------------------
46  */
47 #include "hpl.h"
48 
49 #ifdef STDC_HEADERS
50 int HPL_pdpanel_free
51 (
52    HPL_T_panel *                    PANEL
HPL_reduce(void * BUFFER,const int COUNT,const HPL_T_TYPE DTYPE,const HPL_T_OP OP,const int ROOT,MPI_Comm COMM)53 )
54 #else
55 int HPL_pdpanel_free
56 ( PANEL )
57    HPL_T_panel *                    PANEL;
58 #endif
59 {
60 /*
61  * Purpose
62  * =======
63  *
64  * HPL_pdpanel_free deallocates  the panel resources  and  stores the error
65  * code returned by the panel factorization.
66  *
67  * Arguments
68  * =========
69  *
70  * PANEL   (local input/output)          HPL_T_panel *
71  *         On entry,  PANEL  points  to  the  panel data  structure from
72  *         which the resources should be deallocated.
73  *
74  * ---------------------------------------------------------------------
75  */
76 /* ..
77  * .. Executable Statements ..
78  */
79    if( PANEL->pmat->info == 0 ) PANEL->pmat->info = *(PANEL->DINFO);
80 #ifdef HPL_CALL_VSIPL
81 /*
82  * Release the blocks
83  */
84    (void) vsip_blockrelease_d( PANEL->L1block, VSIP_TRUE );
85    (void) vsip_blockrelease_d( PANEL->L2block, VSIP_TRUE );
86    if( PANEL->grid->nprow > 1 )
87       (void) vsip_blockrelease_d( PANEL->Ublock,  VSIP_TRUE );
88 /*
89  * Destroy blocks
90  */
91    vsip_blockdestroy_d( PANEL->L1block );
92    vsip_blockdestroy_d( PANEL->L2block );
93    if( PANEL->grid->nprow > 1 )
94       vsip_blockdestroy_d( PANEL->Ublock );
95 #endif
96 
97    if( PANEL->WORK  ) free( PANEL->WORK  );
98    if( PANEL->IWORK ) free( PANEL->IWORK );
99 
100    return( MPI_SUCCESS );
101 /*
102  * End of HPL_pdpanel_free
103  */
104 }
105