59 lines
1.5 KiB
C++
59 lines
1.5 KiB
C++
|
|
c===============================================================================
|
|
c READ_MAP.INC
|
|
c===============================================================================
|
|
|
|
c Dieser Includefile erledigt fuer die Subroutinen 'READ_MAP_x' das Einlesen
|
|
c der Potentialmappe und falls notwendig die Fehlerausgabe.
|
|
|
|
|
|
INCLUDE 'accel$sourcedirectory:COM_DIRS.INC'
|
|
INCLUDE 'accel$sourcedirectory:COM_ACCEL.INC'
|
|
|
|
integer i,j,k, ihelp, iostat
|
|
|
|
|
|
|
|
c Einlesen der Potentialmappe:
|
|
|
|
|
|
open (lunRead,file=mappenName//'_'//Nr,
|
|
+ defaultfile=mappenDir//':.MAPPE',status='old',
|
|
+ form='unformatted',recl=imax+1,readonly)
|
|
c + form='unformatted',recl=imax,readonly)
|
|
write(*,*) 'reading '//mappenName(1:nameLength)//'_'//Nr//'.MAPPE ...'
|
|
do k = 0, kmax
|
|
do j = 0, jmax
|
|
c read(lunREAD,iostat=iostat) (map(i,j,k),i=0,imax)
|
|
ihelp = (k*(jmax+1)+j)*(imax+1)
|
|
read(lunREAD,iostat=iostat) (map(ihelp+i),i=0,imax)
|
|
if (iostat.NE.0) then
|
|
write(*,*)
|
|
write(*,999) i,j,k,iostat
|
|
STOP
|
|
endif
|
|
enddo
|
|
enddo
|
|
close(lunREAD)
|
|
999 format(x/'error reading grid point (i,j,k) = ('i4','i4','
|
|
+ i4')'/'iostat = 'i4/)
|
|
|
|
|
|
c da die Anodenbereiche bei RELAX3D negativ kodiert sind, nimm die
|
|
c Absolutbetraege:
|
|
|
|
ihelp = 0
|
|
do k=0, kmax
|
|
do j=0, jmax
|
|
do i=0, imax
|
|
c map(i,j,k) = abs(map(i,j,k))
|
|
map(ihelp) = abs(map(ihelp))
|
|
ihelp = ihelp + 1
|
|
enddo
|
|
enddo
|
|
enddo
|
|
|
|
|
|
RETURN
|
|
|