From 99cca59c28d93788a6b1fdb0db9ae29da3db9ab3 Mon Sep 17 00:00:00 2001 From: Alfredo Buttari Date: Thu, 9 Sep 2010 11:29:25 +0000 Subject: [PATCH] Added few more comments on the new 2003 modules --- base/modules/psb_c_base_mat_mod.f03 | 7 +++++ base/modules/psb_c_mat_mod.f03 | 44 +++++++++++++++++++++++++++++ base/modules/psb_d_base_mat_mod.f03 | 21 +++++++++----- base/modules/psb_d_mat_mod.f03 | 43 ++++++++++++++++++++++++++++ base/modules/psb_s_base_mat_mod.f03 | 7 +++++ base/modules/psb_s_mat_mod.f03 | 44 +++++++++++++++++++++++++++++ base/modules/psb_z_base_mat_mod.f03 | 7 +++++ base/modules/psb_z_mat_mod.f03 | 44 +++++++++++++++++++++++++++++ 8 files changed, 210 insertions(+), 7 deletions(-) diff --git a/base/modules/psb_c_base_mat_mod.f03 b/base/modules/psb_c_base_mat_mod.f03 index b2d01a99..2b5459ee 100644 --- a/base/modules/psb_c_base_mat_mod.f03 +++ b/base/modules/psb_c_base_mat_mod.f03 @@ -40,6 +40,13 @@ ! fully implemented at this level, but we can define the interface for ! the computational methods requiring the knowledge of the underlying ! field, such as the matrix-vector product; this interface is defined, +! +! This module also contains the implementation of the +! psb_c_coo_sparse_mat type and the related methods. This is the +! reference type for all the format transitions, copies and mv unless +! methods are implemented that allow the direct transition from one +! format to another. The psb_c_coo_sparse_mat type extends the +! psb_c_base_sparse_mat one. ! but is supposed to be overridden at the leaf level. diff --git a/base/modules/psb_c_mat_mod.f03 b/base/modules/psb_c_mat_mod.f03 index 6bdee625..d2df2908 100644 --- a/base/modules/psb_c_mat_mod.f03 +++ b/base/modules/psb_c_mat_mod.f03 @@ -1,3 +1,47 @@ +!!$ +!!$ Parallel Sparse BLAS v2.0 +!!$ (C) Copyright 2006, 2007, 2008, 2009, 2010 +!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ +!!$ Redistribution and use in source and binary forms, with or without +!!$ modification, are permitted provided that the following conditions +!!$ are met: +!!$ 1. Redistributions of source code must retain the above copyright +!!$ notice, this list of conditions and the following disclaimer. +!!$ 2. Redistributions in binary form must reproduce the above copyright +!!$ notice, this list of conditions, and the following disclaimer in the +!!$ documentation and/or other materials provided with the distribution. +!!$ 3. The name of the PSBLAS group or the names of its contributors may +!!$ not be used to endorse or promote products derived from this +!!$ software without specific written permission. +!!$ +!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +!!$ POSSIBILITY OF SUCH DAMAGE. +!!$ +!!$ +! +! package: psb_c_mat_mod +! +! This module contains the definition of the psb_c_sparse type which +! is a generic container for a sparse matrix and it is mostly meant to +! provide a mean of switching, at run-time, among different formats, +! potentially unknown at the library compile-time by adding a layer of +! indirection. This type encapsulates the psb_c_base_sparse_mat class +! inside another class which is the one visible to the user. All the +! methods of the psb_c_mat_mod simply call the methods of the +! encapsulated class. + + module psb_c_mat_mod use psb_c_base_mat_mod diff --git a/base/modules/psb_d_base_mat_mod.f03 b/base/modules/psb_d_base_mat_mod.f03 index f129910a..fdb9f458 100644 --- a/base/modules/psb_d_base_mat_mod.f03 +++ b/base/modules/psb_d_base_mat_mod.f03 @@ -32,15 +32,22 @@ ! ! package: psb_d_base_mat_mod ! -! This module contains the implementation of the -! psb_d_base_sparse_mat, derived from the psb_base_sparse_mat to -! define a middle level definition of a real, double-precision sparse -! matrix object.This class object itself does not have any additional -! members with respect to those of the base class. No methods can be -! fully implemented at this level, but we can define the interface for -! the computational methods requiring the knowledge of the underlying +! This module contains the implementation of the psb_d_base_sparse_mat +! type, derived from the psb_base_sparse_mat one to define a middle +! level definition of a real, double-precision sparse matrix +! object.This class object itself does not have any additional members +! with respect to those of the base class. No methods can be fully +! implemented at this level, but we can define the interface for the +! computational methods requiring the knowledge of the underlying ! field, such as the matrix-vector product; this interface is defined, ! but is supposed to be overridden at the leaf level. +! +! This module also contains the implementation of the +! psb_d_coo_sparse_mat type and the related methods. This is the +! reference type for all the format transitions, copies and mv unless +! methods are implemented that allow the direct transition from one +! format to another. The psb_d_coo_sparse_mat type extends the +! psb_d_base_sparse_mat one. module psb_d_base_mat_mod diff --git a/base/modules/psb_d_mat_mod.f03 b/base/modules/psb_d_mat_mod.f03 index 9947dc44..d72e70cb 100644 --- a/base/modules/psb_d_mat_mod.f03 +++ b/base/modules/psb_d_mat_mod.f03 @@ -1,3 +1,46 @@ +!!$ +!!$ Parallel Sparse BLAS v2.0 +!!$ (C) Copyright 2006, 2007, 2008, 2009, 2010 +!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ +!!$ Redistribution and use in source and binary forms, with or without +!!$ modification, are permitted provided that the following conditions +!!$ are met: +!!$ 1. Redistributions of source code must retain the above copyright +!!$ notice, this list of conditions and the following disclaimer. +!!$ 2. Redistributions in binary form must reproduce the above copyright +!!$ notice, this list of conditions, and the following disclaimer in the +!!$ documentation and/or other materials provided with the distribution. +!!$ 3. The name of the PSBLAS group or the names of its contributors may +!!$ not be used to endorse or promote products derived from this +!!$ software without specific written permission. +!!$ +!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +!!$ POSSIBILITY OF SUCH DAMAGE. +!!$ +!!$ +! +! package: psb_d_mat_mod +! +! This module contains the definition of the psb_d_sparse type which +! is a generic container for a sparse matrix and it is mostly meant to +! provide a mean of switching, at run-time, among different formats, +! potentially unknown at the library compile-time by adding a layer of +! indirection. This type encapsulates the psb_d_base_sparse_mat class +! inside another class which is the one visible to the user. All the +! methods of the psb_d_mat_mod simply call the methods of the +! encapsulated class. + module psb_d_mat_mod use psb_d_base_mat_mod diff --git a/base/modules/psb_s_base_mat_mod.f03 b/base/modules/psb_s_base_mat_mod.f03 index 8eaa3121..9e6b1686 100644 --- a/base/modules/psb_s_base_mat_mod.f03 +++ b/base/modules/psb_s_base_mat_mod.f03 @@ -41,6 +41,13 @@ ! the computational methods requiring the knowledge of the underlying ! field, such as the matrix-vector product; this interface is defined, ! but is supposed to be overridden at the leaf level. +! +! This module also contains the implementation of the +! psb_s_coo_sparse_mat type and the related methods. This is the +! reference type for all the format transitions, copies and mv unless +! methods are implemented that allow the direct transition from one +! format to another. The psb_s_coo_sparse_mat type extends the +! psb_s_base_sparse_mat one. module psb_s_base_mat_mod diff --git a/base/modules/psb_s_mat_mod.f03 b/base/modules/psb_s_mat_mod.f03 index 2e90e56e..e84e5bb1 100644 --- a/base/modules/psb_s_mat_mod.f03 +++ b/base/modules/psb_s_mat_mod.f03 @@ -1,3 +1,47 @@ +!!$ +!!$ Parallel Sparse BLAS v2.0 +!!$ (C) Copyright 2006, 2007, 2008, 2009, 2010 +!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ +!!$ Redistribution and use in source and binary forms, with or without +!!$ modification, are permitted provided that the following conditions +!!$ are met: +!!$ 1. Redistributions of source code must retain the above copyright +!!$ notice, this list of conditions and the following disclaimer. +!!$ 2. Redistributions in binary form must reproduce the above copyright +!!$ notice, this list of conditions, and the following disclaimer in the +!!$ documentation and/or other materials provided with the distribution. +!!$ 3. The name of the PSBLAS group or the names of its contributors may +!!$ not be used to endorse or promote products derived from this +!!$ software without specific written permission. +!!$ +!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +!!$ POSSIBILITY OF SUCH DAMAGE. +!!$ +!!$ +! +! package: psb_s_mat_mod +! +! This module contains the definition of the psb_s_sparse type which +! is a generic container for a sparse matrix and it is mostly meant to +! provide a mean of switching, at run-time, among different formats, +! potentially unknown at the library compile-time by adding a layer of +! indirection. This type encapsulates the psb_s_base_sparse_mat class +! inside another class which is the one visible to the user. All the +! methods of the psb_s_mat_mod simply call the methods of the +! encapsulated class. + + module psb_s_mat_mod use psb_s_base_mat_mod diff --git a/base/modules/psb_z_base_mat_mod.f03 b/base/modules/psb_z_base_mat_mod.f03 index 765d2eac..9a45ff0c 100644 --- a/base/modules/psb_z_base_mat_mod.f03 +++ b/base/modules/psb_z_base_mat_mod.f03 @@ -42,6 +42,13 @@ ! of the underlying field, such as the matrix-vector product; this ! interface is defined, but is supposed to be overridden at the leaf ! level. +! +! This module also contains the implementation of the +! psb_z_coo_sparse_mat type and the related methods. This is the +! reference type for all the format transitions, copies and mv unless +! methods are implemented that allow the direct transition from one +! format to another. The psb_z_coo_sparse_mat type extends the +! psb_z_base_sparse_mat one. module psb_z_base_mat_mod diff --git a/base/modules/psb_z_mat_mod.f03 b/base/modules/psb_z_mat_mod.f03 index f7df31c2..808afd32 100644 --- a/base/modules/psb_z_mat_mod.f03 +++ b/base/modules/psb_z_mat_mod.f03 @@ -1,3 +1,47 @@ +!!$ +!!$ Parallel Sparse BLAS v2.0 +!!$ (C) Copyright 2006, 2007, 2008, 2009, 2010 +!!$ Salvatore Filippone University of Rome Tor Vergata +!!$ Alfredo Buttari CNRS-IRIT, Toulouse +!!$ +!!$ Redistribution and use in source and binary forms, with or without +!!$ modification, are permitted provided that the following conditions +!!$ are met: +!!$ 1. Redistributions of source code must retain the above copyright +!!$ notice, this list of conditions and the following disclaimer. +!!$ 2. Redistributions in binary form must reproduce the above copyright +!!$ notice, this list of conditions, and the following disclaimer in the +!!$ documentation and/or other materials provided with the distribution. +!!$ 3. The name of the PSBLAS group or the names of its contributors may +!!$ not be used to endorse or promote products derived from this +!!$ software without specific written permission. +!!$ +!!$ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +!!$ ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +!!$ TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +!!$ PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PSBLAS GROUP OR ITS CONTRIBUTORS +!!$ BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +!!$ CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +!!$ SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +!!$ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +!!$ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +!!$ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +!!$ POSSIBILITY OF SUCH DAMAGE. +!!$ +!!$ +! +! package: psb_z_mat_mod +! +! This module contains the definition of the psb_z_sparse type which +! is a generic container for a sparse matrix and it is mostly meant to +! provide a mean of switching, at run-time, among different formats, +! potentially unknown at the library compile-time by adding a layer of +! indirection. This type encapsulates the psb_z_base_sparse_mat class +! inside another class which is the one visible to the user. All the +! methods of the psb_z_mat_mod simply call the methods of the +! encapsulated class. + + module psb_z_mat_mod use psb_z_base_mat_mod