     MODULE gms
     SAVE
     integer, parameter :: mxtrprf=20   ! max number of transition per profile
     integer, parameter :: mxprfdf=3    ! max number of profile data files
     integer, parameter :: srcnum=200   ! must be the same size as num
     integer, parameter :: nlines=500   ! # of spectral lines between hnu1 hnu2  
     integer, parameter :: nplevel=1000 ! # of levels used in calc
     integer, parameter :: specgrid=4001
     integer, parameter :: nprf = 20    ! # of profiles per element
     character(len=2)   :: element
     character(len=14)  :: file_in
     character(len=70)  :: workdir
     character(len=100) :: cauxdr
     character(len=66)  :: elmt
     integer me 
     integer iunit
     integer src_ntotal 
     integer iReadFlag
     integer itd
     integer itime
     integer ilte
     integer kill_sum
     integer isrc_iter
     integer iconvrg,iconsum
     integer iradat
     integer maxiter
     real(8) time
     real(8) deltat
     real(8) src_Te_eV
     real(8) src_rNa
     real(8) src_zbar    ! NEEDED FOR LINESHAPES
     real(8) src_rNe
     real(8) src_amass
     real(8), dimension(srcnum) :: src_fp
     real(8), dimension(nplevel) :: srdsum
     real(8) hnu1, hnu2, fwhm
     real(8) radat(nlines,8)
     real(8), dimension(specgrid) :: spec
     real(8), dimension(specgrid) :: specwavlen
     real(8), dimension(specgrid) :: j_emissivity
     real(8), dimension(specgrid) :: k_opacity
     type prof
        real(8) :: x
        real(8) :: y
     end type prof
     type profdat
        real(8)           :: dne
        integer           :: npts
        type(prof),dimension(specgrid) :: prf
     end type
     type trans
        integer :: ntrans
        integer, dimension(mxtrprf) :: itrans
        type(profdat), dimension(nprf) :: prfdat
     end type
     type(trans), dimension(3) :: trns
     type(trans), dimension(3) :: lineshape
     END MODULE gms

