
c===============================================================================
c                          READ_INFO.INC
c===============================================================================

c Dieser Includefile erledigt fuer die Subroutinen 'READ_INFO_x' das Einlesen
c und Ueberpruefen der Mappencharakteristika und der Uebergangsbereiche. Da
c die Mappen 1 und 6 leichte Spezialbehandlung erfordern steht in den
c zugehoerigen Dateien der entsprechende Code direkt, anstatt ueber diesen
c Includefile eingebunden zu werden. Aenderungen an diesem Code muessen
c daher im Regelfall auch in den Dateien 'SUB_integr_1.FOR' und
c 'SUB_integr_6.FOR' explizit durchgefuehrt werden!

	INCLUDE 'accel$sourcedirectory:COM_ACCEL.INC'
	INCLUDE 'accel$sourcedirectory:COM_DIRS.INC'
	integer ihelp

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

	logical map_error
	COMMON /map_error/ map_error

c the grid characteristics (as read from the INFO-file):

	real	Dx,Dy,Dz
	real	x_iEQ1, ymax,zmax	! xmax wird in MAP_DEF_n.INC deklariert

	namelist /grid_info/
     +	Dx,Dy,Dz, imax,jmax,kmax, x_iEQ1, xmin,xmax,ymax,zmax

c - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

c Einlesen der Mappen-Informationen:

	open (lunREAD,file=mappenName//'_'//Nr,defaultfile=mappenDir//':.INFO',
     +						  readonly,status='old')
	    read(lunREAD,nml=grid_info)
	close (lunREAD)


c eingelesene imax, jmax und kmax um 1 reduzieren, da in 'ACCEL' die Feldindizes
c ab 0 laufen, bei 'RELAX3D' jedoch ab 1:

	imax = imax-1
	jmax = jmax-1
	kmax = kmax-1


c Umrechnen der Koordinaten, wie sie von 'BESCHL-INIT' ('RELAX3D') verwendet
c werden (Ursprung in Targetfolienmitte) in System mit Ursprung auf der Kryo-Achse:

	xmin	= xmin	 + xFoil
	xmax	= xmax   + xFoil


C DER FOLGENDE ABSCHNITT WURDE HERAUSKOMMENTIERT, DA ES MITTLERWEILE VERSCHIEDEN
C GROSSE POTENTIALMAPPEN GIBT UND DIE MAPPENDIMENSIONEN DAHER SOWIESO VARIABEL
C GEHALTEN WERDEN MUESSEN. DIE VERWENDUNG VON PARAMETERN IST LEIDER NICHT
C MEHR MOEGLICH. ('LEIDER' WEGEN DER ERHOEHTEN RECHENZEIT):
C
Cc checken, ob die Charakteristika der einzulesenden Mappe mit den Vorgaben der
Cc Integrationsroutinen uebereinstimmen:
C
C	if (
C    +	    imax.NE.imax_ .OR. 
C    +	    jmax.NE.jmax_ .OR. kmax.NE.kmax_ .OR.
C    +	    Dx.NE.Dx_ .OR. Dy.NE.Dy_ .OR. Dz.NE.Dz_
Cc   +	    .OR. xmin.NE.xmin_
C    +				      ) then
C	    write(*,*) '-----------------------------------------------------------'
C	    if (.NOT.map_error) then
C		write(*,*) ' Feldgroessen der eingelesenen Mappe und des reservierten'
C		write(*,*) ' Speichers stimmen nicht ueberein:'
C		write(*,*)
C	    endif
C	    write(*,*) ' MAPPE '//Nr//':   '//mappenName(1:nameLength)//'_'//Nr//'.MAPPE'
C	    write(*,*) ' Mappe:     imax ,jmax ,kmax   = ',imax ,jmax ,kmax
C	    write(*,*) '            Dx   ,Dy   ,Dz     = ',Dx   ,Dy   ,Dz  
C	    write(*,*) ' Speicher:  imax_,jmax_,kmax_  = ',imax_,jmax_,kmax_
C	    write(*,*) '            Dx_  ,Dy_  ,Dz_    = ',Dx_  ,Dy_  ,Dz_ 
C	    write(*,*)
C	    map_error = .true.
C	endif
C
C	if (map_error) RETURN	    ! kann auch in anderem 'READ_MAP_x' gesetzt worden sein


c checken, ob der reservierte Speicherplatz ausreicht:

	iHelp = maxmaxmem+1
	if ((imax+1)*(jmax+1)*(kmax+1).GT.iHelp) then
	    write(*,*)
	    write(*,*) 'reservierter Speicher ist nicht ausreichend fuer Mappe',Nr
	    write(*,*)
	    write(*,*) '(imax+1)*(jmax+1)*(kmax+1) = ',(imax+1)*(jmax+1)*(kmax+1)
	    write(*,*) 'maxmaxmem + 1              = ',maxmaxmem + 1
	    write(*,*)
	    write(*,*) '=> ''maxmaxmem'' in accel$sourcedirectory:MAPMAP.INC angleichen'
	    write(*,*) '   und Programm mit ''LINKACV'' am DCL-Prompt neu kompilieren'
	    write(*,*) '   und linken.'
	    write(*,*)
	    call exit
	endif


c xStartUeber definieren:

	xStartUeberUpp = xmax - .5*dx
	xStartUeberLow = xmin + .5*dx


	RETURN

