      subroutine breprt

C**************************************************
C
C This subroutine prints out diagnostic information
C on all of the parameters which bruce uses to perform
C its pulsation calculations.
C
C Started :19/9/95
C Modified:11/10/95
C          23/12/98 - Added reporting on new INCLUDE_ENDPOINTS switch
C          23/12/98 - Added reporting on new WRITE_TIMINGS_FILE switch
C          14/6/99  - Changed reporting of Equal Volume radius to reporting
C                     of effective temperature
C          13/6/99  - Modified the output format radically, primarily
C                     changing to the use of FORMAT statements (since this
C                     is far more portable)
C
C          22/6/00  - Various modifications to account for modifications
C                     elsewhere in BRUCE
C
C          25/6/00  - Added in reporting of various integrated stellar 
C                     quantities
C
C (c) Richard Townsend 1995,1999
C
C**************************************************

C Turn off implicit typing

      implicit none

C Define the hard-wired parameters

      include "bruce.compar_define.inc"

C Load in the Stellar parameters common block

      include "bruce.stepar_common.inc"

C Load in the Mode definition common block

      include "bruce.moddef_common.inc"

C Load in the file names common block

      include "bruce.filnam_common.inc"

C Load in the Field definition common block

      include "bruce.flddef_common.inc"

C Load in the Field switches common block

      include "bruce.fldswi_common.inc"

C Load in the equilibrium stellar grid common block

      include "bruce.eqstgr_common.inc"

C Declare the in-program variables

      integer modcnt			! Counts over the modes

C Bung in the constants and angles include files

      include "constants.inc"
      include "angles.inc"

C OK, we now have all of the parameters read in. We now proceed to print them
C out in a nice big display...

C Print out the stellar parameters

      write(chandl,100) 'Stellar Parameters'
 100  format(/'%%%'/'% ',A/'%%%'/)

      write(chandl,101) 'R_(pole/eq)',RPole/RSun,REq/RSun,'R_sun'
      write(chandl,101) 'g_(pole/eq)',log10(GPole)+2.D0,
     :log10(GEq)+2.D0,'cgs dex'
      write(chandl,101) 'T_(pole/eq)',TPole/1.D3,TEq/1.D3,'kK'
 101  format(A18,1X,':',1X,F7.2,2X,'/',1X,F7.2,1X,A)

      write(chandl,102) 'Mass',MStar/MSun,'M_sun'
      write(chandl,102) 'P_rotation',D360/(Omega*3600.D0),'hours'
      write(chandl,102) 'i',DIncl*360/D360,'degrees'
      write(chandl,102) 'V_eq',VEq/1.D3,'km/s'
      write(chandl,102) 'V_eq sin i',Veq*sin(DIncl)/1.D3,'km/s'
      write(chandl,102) 'V_eq/V_crit',VEq/VCrit,' '
 102  format(A18,1X,':',1X,F11.3,1X,A)
      write(chandl,102) 'R_eq/R_crit',REq/(1.5*RPole),' '
      write(chandl,102) 'Luminosity',log10(LStar/LSun),'L_sun dex'

      write(chandl,102) 'R (total area)',
     :sqrt(AStar/(4.*PI))/RSun,'R_sun'
      write(chandl,102) 'R (total volume)',
     :(3.*VStar/(4.*PI))**(1./3.)/RSun,'R_sun'
      write(chandl,102) 'R (disk area)',
     :sqrt(ADisk/PI)/RSun,'R_sun'
      
      write(chandl,102) 'Teff (total flux)',
     :(LStar/(AStar*BSigma))**(1./4.)*1.e-3,'kK'
      write(chandl,102) 'Teff (disk flux)',
     :(FDisk/(2*ADisk*BSigma))**(1./4.)*1.e-3,'kK'

C Print out the general modelling parameters      
      
      write(chandl,100) 'Modelling Parameters'

      write(chandl,103) 'No. of Fields',NField
      write(chandl,103) 'Visible Points',GrdVis
      write(chandl,103) 'Total Points',GrdTot
 103  format(A18,1X,':',1X,I7)
      
      write(chandl,104) 'Dump Filestub',DmStub
      write(chandl,104) 'Input times',TmFile
 104  format(A18,1X,':',1X,A)

      write(chandl,102) 'Start Time',Times(1)/3600.D0,'hours'
      write(chandl,102) 'Finish Time',Times(NField)/3600.D0,'hours'

      write(chandl,105) 'Write Aux',WrtAux
      write(chandl,105) 'Write Times',WrtTim
      write(chandl,105) 'ST Modes',LSDEff
      write(chandl,103) 'ST Dimension',MatDim
      write(chandl,105) 'Ro-Ap Modes',roAEff
      write(chandl,102) 'Ro-Ap Angle',RAxOff/D360*360.D0,'degrees'
      write(chandl,105) 'Normal fields',GrvFld
      write(chandl,105) 'Normal FX',NrmEff
      write(chandl,105) 'Area FX',SrfEff
      write(chandl,105) 'Temp. FX',TmpEff
      write(chandl,105) 'Horiz. FX',HorEff
 105  format(A18,1X,':',1X,L1)


C Write out the mode definitions

      do modcnt=1,NModes,1
         write(chandl,106) modcnt
        write(chandl,103) 'l',Lmode(modcnt)
        write(chandl,103) 'm',Mmode(modcnt)
        write(chandl,103) 'j',Jmode(modcnt)
        if(parity(modcnt)) then
           write(chandl,104) 'Parity','Even'
        else
           write(chandl,104) 'Parity','Odd'
        endif
        write(chandl,102) 'Amplitude',VAmode(modcnt)/1.D3,'km/s'
        write(chandl,102) 'K',Kmode(modcnt),' '
        write(chandl,102) 'P_corot',
     :D360/(CFmode(modcnt)*3600.D0),'hours'
        write(chandl,102) 'P_obs',
     :D360/((CFmode(modcnt)-Mmode(modcnt)*Omega)*3600.D0),'hours'
        write(chandl,102) 'Temp. Ampl.',TAmode(modcnt),' '
        write(chandl,102) 'Temp. Phase',TPmode(modcnt)*360.D0/D360,
     :'degrees'
        write(chandl,102) 'Horiz. Ampl.',HAmode(modcnt),' '
        write(chandl,102) 'Horiz. Phase',HPmode(modcnt)*360.D0/D360,
     :'degrees'
        write(chandl,102) 'Initial Phase',IPmode(modcnt)*360.D0/D360,
     :'degrees'
        write(chandl,102) 'nu',numode(modcnt),' '
      enddo

 106  format(/,'%%%',/,'% Mode Definition ',I3,/,'%%%',/)

C Quit out...

      return

      end
