
c===============================================================================
c                          ADD_MAP.INC
c===============================================================================

c Dieser Includefile erledigt fuer die Subroutinen 'ADD_MAP_Nr' das Einlesen
c der '_Tgt_Nr'-, der '_Gi1_Nr'- sowie gegebenenfalls der '_Gua_Nr'- Mappen
c und das Aufaddieren entsprechend den aktuellen Spannungen.

	INCLUDE 'accel$sourcedirectory:COM_HVs.INC'
	INCLUDE 'accel$sourcedirectory:COM_DIRS.INC'
	INCLUDE 'accel$sourcedirectory:COM_ACCEL.INC'

	real	  read_memory(0:100)
	COMMON   /read_memory/ read_memory	! COMMON nur, damit nicht jede
						! Mappe extra Speicher belegt.

	integer   i,j,k, ihelp, iostat


c Einlesen der '_Tgt_nr'-Potentialmappe:

	if (mappenName.EQ.'RUN9') then
	    open (lunRead,file='RUN6_NEW_Tgt_'//Nr,
     +		     defaultfile=mappenDir//':.MAPPE',status='old',
     +		     form='unformatted',recl=imax+1,readonly)
c     +               form='unformatted',recl=imax,readonly)
	else
	    open (lunRead,file=mappenName//'_Tgt_'//Nr,
     +		     defaultfile=mappenDir//':.MAPPE',status='old',
     +		     form='unformatted',recl=imax+1,readonly)
c     +               form='unformatted',recl=imax,readonly)
	endif
	write(*,*) 'constructing map '//Nr//' ...'
	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 Angleichen der Potentialmappe an UTgt:

	ihelp = 0
	do k=0, kmax
	    do j=0, jmax
		do i=0, imax
c		    map(i,j,k) = UTgt*abs(map(i,j,k))
		    map(ihelp) = UTgt*abs(map(ihelp))
		    ihelp = ihelp + 1
 		enddo
	    enddo
	enddo


c Einlesen und Addieren der '_Gua_nr'-Potentialmappe (mit 'UGua' multipliziert):

	if (freeGuard) then
	    open (lunRead,file=mappenName//'_Gua_'//Nr,
     +		 defaultfile=mappenDir//':.MAPPE',status='old',
     +		 form='unformatted',recl=imax+1,readonly)
c     +           form='unformatted',recl=imax,readonly)
	    ihelp = 0
	    do k = 0, kmax
		do j = 0, jmax
		    read(lunRead,iostat=iostat) (read_memory(i),i=0,imax)
		    if (iostat.NE.0) then
			write(*,*) 
			write(*,999) i,j,k,iostat
			STOP
		    endif
		    do i=0, imax
			map(ihelp) = map(ihelp) + UGua*abs(read_memory(i))
			ihelp = ihelp + 1
		    enddo
		enddo
	    enddo
	    close(lunREAD)
	endif


c Einlesen und Addieren der '_Gi1_nr'-Potentialmappe (mit 'UG1' multipliziert):

	open (lunRead,file=mappenName//'_Gi1_'//Nr,
     +		 defaultfile=mappenDir//':.MAPPE',status='old',
     +		 form='unformatted',recl=imax+1,readonly)
c     +           form='unformatted',recl=imax,readonly)
	ihelp = 0
	do k = 0, kmax
      	    do j = 0, jmax
      		read(lunRead,iostat=iostat) (read_memory(i),i=0,imax)
      		if (iostat.NE.0) then
		    write(*,*)
      		    write(*,999) i,j,k,iostat
		    STOP
      		endif
		do i=0, imax
c		    map(i,j,k) = map(i,j,k) + UG1*abs(read_memory(i))
		    map(ihelp) = map(ihelp) + UG1*abs(read_memory(i))
		    ihelp = ihelp + 1
		enddo
      	    enddo
	enddo
 	close(lunREAD)


	RETURN

