subroutine mvbvel_usr(nob) c use obsijk_module c #ifdef SINGLE include '../comdeck/precis4.f' #else include '../comdeck/precis.f' #endif c include '../comdeck/params.f' include '../comdeck/const.f' include '../comdeck/cntrl.f' include '../comdeck/cbusr.f' include '../comdeck/dumn.f' include '../comdeck/mparam.f' include '../comdeck/acctrm.f' include '../comdeck/scalar.f' c dimension as(3),ab(3) c c c HINCHEY JOT CODE: PROP AUV c c if(cycle.eq.0) then c cs=0.0 c pold=0.0 c rold=0.0 c endif c if(nob.eq.1) return c dogs=zrefn(1) c cats=omzmvbn(1) c raw=pold c arm=0.1 c swing=omzmvbn(1)*arm c if(nob.eq.4) then c wref(4)=wrefn(1) c vref(4)=vrefn(1)+swing*cos(rold) c uref(4)=urefn(1)-swing*sin(rold) c omzmvb(4)=-cs+omzmvbn(1) c omzmvb(4)=-cs c omymvb(4)=0.0 c omxmvb(4)=0.0 c endif c if(nob.eq.5) then c wref(5)=wrefn(1) c vref(5)=vrefn(1)-swing*cos(rold) c uref(5)=urefn(1)+swing*sin(rold) c omzmvb(5)=+cs+omzmvbn(1) c omzmvb(5)=+cs c omymvb(5)=0.0 c omxmvb(5)=0.0 c endif c arm=0.1 c swing=omzmvbn(1)*arm c if(nob.eq.2) then c as(1)=+raw*cos(rold) c as(2)=+raw*sin(rold) c as(3)=omzmvbn(1) c do i=1,3 c ab(i)=0.0 c do j=1,3 c ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) c end do c end do c wref(2)=wrefn(1) c vref(2)=vrefn(1)-swing*sin(rold) c uref(2)=urefn(1)-swing*cos(rold) c omxmvb(2)=ab(1) c omymvb(2)=ab(2) c omzmvb(2)=ab(3) c endif c if(nob.eq.3) then c as(1)=+raw*cos(rold) c as(2)=+raw*sin(rold) c as(3)=omzmvbn(1) c do i=1,3 c ab(i)=0.0 c do j=1,3 c ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) c end do c end do c wref(3)=wrefn(1) c vref(3)=vrefn(1)+swing*sin(rold) c uref(3)=urefn(1)+swing*cos(rold) c omxmvb(3)=ab(1) c omymvb(3)=ab(2) c omzmvb(3)=ab(3) c endif c c HINCHEY JOT CODE: PROP AUV c c c c HINCHEY JOT CODE: TANK AUV c c if(cycle.eq.0) then c cs=0.0 c pold=0.0 c rold=0.0 c endif c if(nob.eq.1) return c dogs=zrefn(1) c cats=omzmvbn(1) c raw=pold c arm=0.1 c swing=omzmvbn(1)*arm c if(nob.eq.2) then c as(1)=+raw*cos(rold) c as(2)=+raw*sin(rold) c as(3)=omzmvbn(1) c do i=1,3 c ab(i)=0.0 c do j=1,3 c ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) c end do c end do c wref(2)=wrefn(1) c vref(2)=vrefn(1)-swing*sin(rold) c uref(2)=urefn(1)-swing*cos(rold) c omxmvb(2)=ab(1) c omymvb(2)=ab(2) c omzmvb(2)=ab(3) c endif c if(nob.eq.3) then c as(1)=+raw*cos(rold) c as(2)=+raw*sin(rold) c as(3)=omzmvbn(1) c do i=1,3 c ab(i)=0.0 c do j=1,3 c ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) c end do c end do c wref(3)=wrefn(1) c vref(3)=vrefn(1)+swing*sin(rold) c uref(3)=urefn(1)+swing*cos(rold) c omxmvb(3)=ab(1) c omymvb(3)=ab(2) c omzmvb(3)=ab(3) c endif c if(nob.eq.4) then c wref(4)=wrefn(1)+cs c vref(4)=vrefn(1) c uref(4)=urefn(1) c omzmvb(4)=omzmvbn(1) c omymvb(4)=0.0 c omxmvb(4)=0.0 c endif c c HINCHEY JOT cODE: TANK AUV c c c c c HINCHEY JOT CODE: PROP/TANK AUV c if(cycle.eq.0) then cs=0.0 pold=0.0 rold=0.0 endif if(nob.eq.1) return dogs=zrefn(1) cats=omzmvbn(1) raw=pold arm=0.1 swing=omzmvbn(1)*arm if(nob.eq.4) then wref(4)=wrefn(1) vref(4)=vrefn(1)+swing*cos(rold) uref(4)=urefn(1)-swing*sin(rold) omzmvb(4)=-cs+omzmvbn(1) omzmvb(4)=-cs c omzmvb(4)=omzmvbn(1) omymvb(4)=0.0 omxmvb(4)=0.0 endif if(nob.eq.5) then wref(5)=wrefn(1) vref(5)=vrefn(1)-swing*cos(rold) uref(5)=urefn(1)+swing*sin(rold) omzmvb(5)=+cs+omzmvbn(1) omzmvb(5)=+cs c omzmvb(5)=omzmvbn(1) omymvb(5)=0.0 omxmvb(5)=0.0 endif arm=0.1 swing=omzmvbn(1)*arm if(nob.eq.2) then as(1)=+raw*cos(rold) as(2)=+raw*sin(rold) as(3)=omzmvbn(1) do i=1,3 ab(i)=0.0 do j=1,3 ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) end do end do wref(2)=wrefn(1) vref(2)=vrefn(1)-swing*sin(rold) uref(2)=urefn(1)-swing*cos(rold) omxmvb(2)=ab(1) omymvb(2)=ab(2) omzmvb(2)=ab(3) endif if(nob.eq.3) then as(1)=+raw*cos(rold) as(2)=+raw*sin(rold) as(3)=omzmvbn(1) do i=1,3 ab(i)=0.0 do j=1,3 ab(i)=ab(i)+trfmvb(nob,j,i)*as(j) end do end do wref(3)=wrefn(1) vref(3)=vrefn(1)+swing*sin(rold) uref(3)=urefn(1)+swing*cos(rold) omxmvb(3)=ab(1) omymvb(3)=ab(2) omzmvb(3)=ab(3) endif if(nob.eq.6) then wref(6)=wrefn(1) c wref(6)=wrefn(1)+cs vref(6)=vrefn(1) uref(6)=urefn(1) omzmvb(6)=omzmvbn(1) omymvb(6)=0.0 omxmvb(6)=0.0 endif c c HINCHEY JOT CODE: PROP/TANK AUV c return end