|
DOUG 0.2
|
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
1.7.3-20110217