SUBROUTINE read_aph_ham USE CommonInfo_Module USE APH_Module USE Hamilt_Module IMPLICIT NONE !========================================================================================= ! I N T E R N A L S CHARACTER(LEN=100) :: filename LOGICAL :: debug INTEGER :: checkdim !========================================================================================= ! A L L O C A T A B L E !========================================================================================= ! N A M E L I S T S !========================================================================================= ! Choose whether to output debug information debug=.false. !========================================================================================= ! Read in APH information filename='H_APH.bin' OPEN(UNIT=bin_unit9,FILE=TRIM(BinOutdir)//TRIM(filename),FORM='unformatted',STATUS='unknown') READ(bin_unit9) checkdim IF (checkdim.ne.nrho) STOP 'wrong nrho : read_aph_ham' READ(bin_unit9) checkdim IF (checkdim.ne.ntheta) STOP 'wrong ntheta : read_aph_ham' READ(bin_unit9) checkdim IF (checkdim.ne.nchi) STOP 'wrong nchi : read_aph_ham' ALLOCATE( kinetic_rho(nrho,nrho) , kinetic_theta(ntheta,ntheta) , kinetic_chi(nchi,nchi) ) ALLOCATE( potential_full(nrho,ntheta,nchi+1) ) READ(bin_unit9) kinetic_rho READ(bin_unit9) kinetic_theta READ(bin_unit9) kinetic_chi READ(bin_unit9) potential_full ALLOCATE( a(ntheta) , b(ntheta) , c(ntheta) , d(ntheta) ) READ(bin_unit9) a READ(bin_unit9) b READ(bin_unit9) c READ(bin_unit9) d CLOSE(UNIT=bin_unit9,STATUS='keep') IF (debug) THEN CALL matrix_out(kinetic_rho,nrho,nrho,'grid/kinetic_rho.txt') CALL matrix_out(kinetic_theta,ntheta,ntheta,'grid/kinetic_theta.txt') CALL matrix_out(kinetic_chi,nchi,nchi,'grid/kinetic_chi.txt') CALL write_array(ntheta,a,'grid/a.txt') CALL write_array(ntheta,b,'grid/b.txt') CALL write_array(ntheta,c,'grid/c.txt') CALL write_array(ntheta,d,'grid/d.txt') ENDIF END SUBROUTINE read_aph_ham