大家看看这是什么编程语言,怎么编译
subroutine matrix(ng,k,g,nep,di,R,ep,nhe,ar,ai)
real*8 k(2),g(ng,2)
real*8 di(nep,2),R(nep),ep(nep)
real*8 ar(ng,ng),ai(ng,ng)
real*8 epb,va
real*8 gg1,gg2,gg,kkr,kki,kk
common/epv/epb,va
write(*,*)'epb= ',epb,' va= ',va,'nep=',nep
do i=1,ng
do j=1,ng
ar(i,j)=0.0
ai(i,j)=0.0
enddo
enddo
do 10 i=1,ng
do 10 j=1,ng
gg1=g(i,1)-g(j,1)
gg2=g(i,2)-g(j,2)
gg=sqrt(gg1**2+gg2**2)
if(gg.lt.0.00001)then
kkr=1./epb
kki=0.0
else
kkr=0.0d0
kki=0.0d0
endif
do 5 ii=1,nep
call kappa(gg,R(ii),ep(ii),kk)
kkr=kkr+ kk*cos( gg1*di(ii,1)+gg2*di(ii,2) )
kki=kki- kk*sin( gg1*di(ii,1)+gg2*di(ii,2) )
5 continue
if(nhe.eq.1)then !for H polarization
ar(i,j)=( (k(1)+g(i,1))*(k(1)+g(j,1))+
& (k(2)+g(i,2))*(k(2)+g(j,2)) )*kkr