program main !sms网格转换成mike21网格
DIMENSION X(60000),Y(60000),H(60000),NDNN(110000,3),ncbd(10000)
dimension NBS(50),NOBD(5000,50),NSED(5000,50),id0(80000),nbi(50)
dimension x0(50000),y0(50000),h0(50000)
character*2 a*2,b*2,gnn*3,demo*500
open(3,file='./2013.8.30(after).grd',status='old')
read(3,*)
read(3,*)nel,nde
do i=1,nde
read(3,*)num,x(i),y(i),h(i)
h(i)=h(i)+2.2
enddo
do i=1,nel
read(3,*)num,nd,(ndnn(i,j),j=1,3)
enddo
do i=1,4 !
read(3,*)
enddo
read(3,*)kb
read(3,*)
do k=1,kb
read(3,*)nbs(k)
do i=1,nbs(k)
read(3,*)nobd(i,k)
enddo
enddo
close(3)
c-----------------------------------------------------------
open(4,file='滑道1.grd',status='old')
read(4,*)
read(4,*)nel0,nde0
do i=1,nde0
read(4,*)num,x0(i),y0(i),h0(i)
enddo
close(4)
do 25 i=1,nde
do j=1,nde0
dis=sqrt((x(i)-x0(j))**2+(y(i)-y0(j))**2)
if(dis.le.5)then
h(i)=2.2-h0(j)
goto 25
endif
enddo
25 continue
open(4,file='滑道2.grd',status='old')
read(4,*)
read(4,*)nel0,nde0
do i=1,nde0
read(4,*)num,x0(i),y0(i),h0(i)
enddo
close(4)
do 35 i=1,nde
do j=1,nde0
dis=sqrt((x(i)-x0(j))**2+(y(i)-y0(j))**2)
if(dis.le.5)then
h(i)=2.2-h0(j)
goto 35
endif
enddo
35 continue
c----------------------------------------------------------
id0=0
open(18,file='closebd.txt',status='old')
do nn=1,100
read(18,*,end=181)nk
write(*,*)nk
read(18,*)(ncbd(n),n=1,nk)
do i=1,nk
id0(ncbd(i))=1 !+nn
enddo
enddo
181 continue
close(18)
do k=1,kb
do i=1,nbs(k)
id0(nobd(i,k))=k+1
enddo
enddo
write(*,*)
demo=' PROJCS["Beijing_1954_3_Degree_GK_CM_111E",GEOGCS
*["GCS_Beijing_1954",DATUM["D_Beijing_1954",SPHEROID["Krasovsky
*_1940",6378245.0,298.3]],PRIMEM["Greenwich",0.0],UNIT["Degree",
*0.0174532925199433]],PROJECTION["Gauss_Kruger"],PARAMETER["False
*_Easting",500000.0],PARAMETER["False_Northing",0.0],PARAMETER
*["Central_Meridian",120.0],PARAMETER["Scale_Factor",1.0],
*PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]]'
open(30,file='2013.8.30(after).mesh')
write(30,'(I8,a)')nde,demo
d0=0
do i=1,nde
write(30,'(i8,2f12.2,f10.4,I4)')i,x(i),y(i),h(i)*-1,id0(i) !
enddo
write(30,*)nel,' 3 21'
do i=1,nel
write(30,'(5I6)')i,(ndnn(i,j),j=1,3),d0
enddo
close(30)
end