!-------- SENGEN 錾 implicit none integer col,lin,i,j,j2,col2 parameter(col=141,lin=121) real adt(col,lin),dlat,dlon,longitude real(8) lat1,lat2,dist,dadt,coli,g,pi,gv,mlat !--------- Parameters g=9.8; pi=3.141592 !--------- Read satellite data open(10,file="2012-05.madt.141x121.flat",access="direct", 1 form='unformatted',status="old",recl=col*lin*4) read(10,rec=1) adt close(10) !--------- Calculate column value based on Longitude value write(*,*) "Enter Longitude you want to calculate Geo. Vel." read(*,*) longitude dlon=(155.14-120.17)/141 col2=int((longitude-120.17-0.5*dlon)/(dlon)+1) !--------- Calculate Geostrophic Velocity along given longitude do i=col2,col2 do j=1,lin-1 dlat=(55.05-25.09)/121. j2=j+1 lat1=55.05-(j-1)*dlat lat2=55.05-(j2-1)*dlat mlat=(lat1+lat2)*0.5 call DISTLL(lat1,longitude,lat2,longitude,dist) dadt=-999 if(adt(i,j).ne.-999.and.adt(i,j2).ne.-999)then if(dadt.ne.0)then dadt=adt(i,j)-adt(i,j2) coli=2*7.2*1.0e-5*sin(mlat*pi/180.0) gv=-(g/coli)*(dadt*0.01)/(dist*1000) else gv=-999 endif else gv=-999 endif write(*,100) longitude,lat1,lat2,adt(i,j),adt(i,j2), 1 dadt,dist,gv 100 format("Longitude(E)=",f12.4," LAT1(N)=",f8.4," LAT2(N)=",f7.4, 1 " adt1(cm)=",f9.4," adt2(cm)= ",f9.4, 1 " dadt(cm)=",f12.4," Distance(km)= ",f10.4, 1 " gv(m/s)=",f12.4) enddo enddo stop end