*********************************************************************** SUBROUTINE UFLDIN(MAPFILE) C READ FIELD MAP FROM EXTERNAL FILE * * last modified on 5/5/98 by R.Holzmann *********************************************************************** IMPLICIT NONE CHARACTER*(*) MAPFILE #include "fields.inc" CHARACTER MODE*3 / 'DAT' / ! Alt: 'BIN' REAL FXMAX, FYMAX, FZMAX REAL PI, PHI INTEGER IPH,J,K INTEGER IX,IZ DATA PI /3.1415927/ C C define common block variables DELTA_PHI_GAP1 = 360.0/no_of_coils DELTA_PHI2_GAP1 = 180.0/no_of_coils DELTA_PHI_FIELD1 = 180./no_of_coils/(no_of_phi_cuts-1) C READ LOOKUP TABLES FROM FILE IF (MODE .EQ. 'BIN') THEN OPEN(UNIT=27,FILE=MAPFILE,FORM='UNFORMATTED',STATUS='OLD') ELSE OPEN(UNIT=27,FILE=MAPFILE,FORM='FORMATTED',STATUS='OLD') ENDIF C LOOP OVER PHI: DO 102 IPH=1,NO_OF_PHI_CUTS IF (MODE.EQ.'BIN') THEN READ(27)PHI,Z_MIN_FIELD1,Z_MAX_FIELD1,DELTA_Z_FIELD1, + RHO_MIN_FIELD1,RHO_MAX_FIELD1,DELTA_RHO_FIELD1 ELSE READ(27,1000)PHI,Z_MIN_FIELD1,Z_MAX_FIELD1,DELTA_Z_FIELD1, + RHO_MIN_FIELD1,RHO_MAX_FIELD1,DELTA_RHO_FIELD1 END IF WRITE(6,*) ' ' WRITE(6,*) ' Magnetic field map read from file: ', MAPFILE WRITE(6,*) ' PHI,Z_MIN,Z_MAX,DELTA_Z,RHO_MIN,RHO_MAX,DELTA_RHO' WRITE(6,1000) PHI,Z_MIN_FIELD1,Z_MAX_FIELD1,DELTA_Z_FIELD1, + RHO_MIN_FIELD1,RHO_MAX_FIELD1,DELTA_RHO_FIELD1 IZ = INT((-Z_MIN_FIELD1+Z_MAX_FIELD1)/DELTA_Z_FIELD1)+1 IX = INT((-RHO_MIN_FIELD1+RHO_MAX_FIELD1)/DELTA_RHO_FIELD1)+1 if(iz .gt. n_z_max) then WRITE(6,*) ' Too many z steps',iz,n_z_max endif if(ix .gt. n_rho_max) then WRITE(6,*) ' Too many rho steps',ix,n_rho_max endif FXMAX = 0.0 FYMAX = 0.0 FZMAX = 0.0 C LOOP OVER Z DO 101 J=1,IZ C LOOP OVER RHO DO 100 K=1,IX IF (MODE.EQ.'BIN') THEN READ(27) FX1(IPH,J,K),FY1(IPH,J,K),FZ1(IPH,J,K) ELSE READ(27,1001) FX1(IPH,J,K),FY1(IPH,J,K),FZ1(IPH,J,K) END IF FXMAX = AMAX1(ABS(FX1(IPH,J,K)),FXMAX) FYMAX = AMAX1(ABS(FY1(IPH,J,K)),FYMAX) FZMAX = AMAX1(ABS(FZ1(IPH,J,K)),FZMAX) 100 CONTINUE 101 CONTINUE WRITE(6,*) ' Maxfield: ',FXMAX, FYMAX, FZMAX 102 CONTINUE 1000 FORMAT(F8.3,6F8.4) 1001 FORMAT(3F7.3) CLOSE(27) RETURN END