DOUG 0.2

VectorGen.F90

Go to the documentation of this file.
00001 ! DOUG - Domain decomposition On Unstructured Grids
00002 ! Copyright (C) 1998-2006 Faculty of Computer Science, University of Tartu and
00003 ! Department of Mathematics, University of Bath
00004 !
00005 ! This library is free software; you can redistribute it and/or
00006 ! modify it under the terms of the GNU Lesser General Public
00007 ! License as published by the Free Software Foundation; either
00008 ! version 2.1 of the License, or (at your option) any later version.
00009 !
00010 ! This library is distributed in the hope that it will be useful,
00011 ! but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 ! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 ! Lesser General Public License for more details.
00014 !
00015 ! You should have received a copy of the GNU Lesser General Public
00016 ! License along with this library; if not, write to the Free Software
00017 ! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00018 ! or contact the authors (University of Tartu, Faculty of Computer Science, Chair
00019 ! of Distributed Systems, Liivi 2, 50409 Tartu, Estonia, http://dougdevel.org,
00020 ! mailto:info(at)dougdevel.org)
00021 
00023 program VectorGen
00024 
00025   use globals
00026 
00027   implicit none
00028 
00029 #include<doug_config.h>
00030   
00031   integer,parameter :: N=(128*4)**2
00032   character(*),parameter :: filename="vector.out.xdr"
00033   real(kind=rk), pointer :: x(:)
00034   integer  :: fHandler  !< file Handler
00035 
00036   allocate(x(N))
00037   call random_number(x(1:N))
00038   print *, "N =", N, ", sum(x) =", sum(x)
00039 
00040 #ifdef HAVE_LIBFXDR
00041   call WriteOutVector_XDR(filename, fHandler, N, x)
00042 #else
00043   print*, "ERROR: XDR was not compiled in"
00044   stop 1
00045 #endif
00046 
00047 contains
00048 
00049 #ifdef HAVE_LIBFXDR
00050   !----------------------------------------------------------
00053   subroutine WriteOutVector_XDR(filename, fHandler, n, x)
00054     implicit none
00055     include 'fxdr.inc'
00056     
00057     character*(*),intent(in)  :: filename
00058     integer      ,intent(out) :: fHandler
00059     integer      ,intent(in) :: n
00060     real(kind=rk), pointer :: x(:)
00061     
00062     integer :: ierr, i
00063     
00064     fHandler = initxdr( trim(filename), 'w', .FALSE. )
00065     ierr  = ixdrint( fHandler, n )
00066     do i=1,n
00067        ierr = ixdrdouble( fHandler, x(i) )
00068     enddo    
00069 
00070   end subroutine WriteOutVector_XDR
00071 
00072 #endif
00073 
00074 end program VectorGen