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