program write_float
double precision npart,xpart,ypart,kpart,kfloat,iup,itop
& ,tstart,tend
parameter(Nx=80,Ny=42)
double precision depth(Nx,Ny),xc(Nx),yc(Ny),degX,degY
c
integer kyear,kpres,kday
real rtime,rlon,rlat
integer narg
logical flag
c
c if float should not be written use flag
c
flag = .true.
narg=iargc()
if ( narg .gt. 0 ) flag = .false.
print*, flag
if (flag) then
c
c open float file
c
ilen2=9*8
open(1,file='float_pos.input',status='new',form='unformatted'
& ,access='direct',recl=ilen2)
endif
c
c read bathymetry
c
ilen=Nx*Ny*8
open(2,file='topog.bump',status='old',form='unformatted'
&, access='direct',recl=ilen)
read(2,rec=1) depth
close(2)
c
c generate axes
c
degX=5000.
xc(1)=2500.
do i=2,Nx
xc(i)=xc(i-1)+degX
enddo
c
degY=5000.
yc(1)=2500.
do j=2,Ny
yc(j)=yc(j-1)+degY
enddo
print*,'xc(1), xc(Nx): ',xc(1), xc(Nx)
print*,'yc(1), yc(Ny): ',yc(1), yc(Ny)
c
c preset first line with dummies
npart = 0.
tstart = -1.
xpart = 0.
ypart = 0.
kpart = 0.
kfloat = 0.
iup = 0.
itop = 0.
tend = -1.
if (flag) write(1,rec=1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
100 continue
c
print*, '--------------------------------------------------'
print*, '| FLOAT CONFIGURATION |'
print*, '--------------------------------------------------'
print*, ' '
print*, 'sets over whole basin: '
ip=0
c
c target depth: level 5
c profiling: 5 days
c surface time: 12, 24 hours
c
do j=20,30,2
do i=20,50,2
if (depth(i,j) .le. -2530.) then
ip=ip+1
npart = REAL(ip)
tstart = -1.
xpart = xc(i)
ypart = yc(j)
kpart = 5.
kfloat = kpart
iup = 432000.
itop = 43200.
tend = -1.
if (flag) write(1,rec=ip+1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
endif
enddo
enddo
write(6,200) 'ip = ',ip,' kpart,kfloat,iup,itop,tstart,tend: ',
& kpart,kfloat,iup,itop,tstart,tend
200 format(A,I6,A,2F3.0,4F8.0)
c
do j=20,30,2
do i=20,50,2
if (depth(i,j) .le. -2530.) then
ip=ip+1
npart = REAL(ip)
tstart = -1.
xpart = xc(i)
ypart = yc(j)
kpart = 5.
kfloat = kpart
iup = 432000.
itop = 86400.
tend = -1.
if (flag) write(1,rec=ip+1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
endif
enddo
enddo
write(6,200) 'ip = ',ip,' kpart,kfloat,iup,itop,tstart,tend: ',
& kpart,kfloat,iup,itop,tstart,tend
c
c
c target depth: level 5
c profiling: 1 day
c surface time: 12 hours
c integrating only day 2-5
c
do j=20,30,2
do i=20,50,2
if (depth(i,j) .le. -2530.) then
ip=ip+1
npart = REAL(ip)
tstart = 172800.
xpart = xc(i)
ypart = yc(j)
kpart = 0.
kfloat = 5.
iup = 86400.
itop = 43200.
tend = 518400.
if (flag) write(1,rec=ip+1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
endif
enddo
enddo
write(6,200) 'ip = ',ip,' kpart,kfloat,iup,itop,tstart,tend: ',
& kpart,kfloat,iup,itop,tstart,tend
c
c
c target depth: level 5
c no profiling
c integrating starting day 5
c
do j=20,30,2
do i=20,50,2
if (depth(i,j) .le. -2530.) then
ip=ip+1
npart = REAL(ip)
tstart = 432000.
xpart = xc(i)
ypart = yc(j)
kpart = 0.
kfloat = 5.
iup = 0.
itop = 0.
tend = -1.
if (flag) write(1,rec=ip+1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
endif
enddo
enddo
write(6,200) 'ip = ',ip,' kpart,kfloat,iup,itop,tstart,tend: ',
& kpart,kfloat,iup,itop,tstart,tend
c
c mooring
c
do j=20,30,2
i=20
ip=ip+1
npart = REAL(ip)
tstart = -1.
xpart = xc(i)
ypart = yc(j)
kpart = 0.
kfloat = kpart
iup = -3.
itop = 0.
tend = -1.
if (flag) write(1,rec=ip+1) npart,tstart,xpart,ypart,
& kpart,kfloat,iup,itop,tend
enddo
write(6,200) 'ip = ',ip,' kpart,kfloat,iup,itop,tstart,tend: ',
& kpart,kfloat,iup,itop,tstart,tend
c
print*, ' '
print*, '--------------------------------------------------'
print*, 'total number of floats: npart = ',ip
print*, '--------------------------------------------------'
c write total number of floats in first line
npart = DBLE(ip)
tstart = -1.
xpart = 0.
ypart = 0.
kpart = 0.
kfloat = DBLE(ip)
iup = 0.
itop = 0.
tend = -1.
if (flag)
& write(1,rec=1) npart,tstart,xpart,ypart,kpart,kfloat,iup,itop,tend
close(1)
end