C================================================ C This subroutine reads forcing parameters C================================================ SUBROUTINE READ_FORCING implicit none #include "FORCING.h" C character*100 dum1 C open(unit=20,file='forcing.par',status='old') C-----modify this if necessary---------------------- C read(20,'(a)')dum1 C read(20,*)hbar,lat0 C--------------------------------------------------- C close(20) end C================================================ C This subroutine initializes forcing parameters C================================================ SUBROUTINE INI_FORCING implicit none #include "SIZE.h" #include "SWE.h" #include "FORCING.h" C-----modify this if necessary---------------------- C lat0 = lat0*pi/180. ! convert ref latitude to radians C ftide = -grav*hbar/eradius ! amplitude of forcing C ktide = 1./(eradius*cos(lat0)) C write(*,*)'Forcing parameters are:' C write(*,*)'hbar= ',hbar C write(*,*)'ftide= ',ftide,' ktide= ',ktide C--------------------------------------------------- end C function to return u forcing FUNCTION CALC_U_FORCING(xu,yu,t) REAL*8 xu,yu,t REAL*8 calc_u_forcing #include "SIZE.h" #include "SWE.h" #include "FORCING.h" calc_u_forcing=0.d0 C calc_u_forcing = ftide*(cos(lat0) - 2.*sin(lat0)*yu/eradius) C & *sin(2.*(omegaMoon*t + ktide*xu)) return end C function to return v forcing FUNCTION CALC_V_FORCING(xv,yv,t) REAL*8 xv,yv,t REAL*8 calc_v_forcing #include "FORCING.h" calc_v_forcing=0.d0 C calc_v_forcing = ftide*sin(2*lat0) C & *(cos(omegaMoon*t + ktide*xv)**2) return end