70 INTEGER,
INTENT(IN) :: IDX
71 REAL(SP) :: ZREF(KBM1),ZREFJ(KBM1),TSIGMA(KBM1),SSIGMA(KBM1)
72 REAL(SP) :: TTMP(KBM1),STMP(KBM1),TREF(KBM1),SREF(KBM1)
73 REAL(SP) :: PHY_Z(KBM1),PHY_Z1(KBM1)
74 REAL(SP) :: TT1(KBM1),TT2(KBM1),SS1(KBM1),SS2(KBM1)
76 REAL(SP) :: TIME1,FACT,UFACT,FORCE,UI,VI,UNTMP,VNTMP,TX,TY,HFLUX
79 REAL(SP) :: DTXTMP,DTYTMP,SPRO,WDS,CD,SPCP,ROSEA,ROSEA1(MT),SPRO1(MT)
80 REAL(SP) :: PHAI_IJ,ALPHA1,DHFLUXTMP,DHSHORTTMP,HSHORT,TIMERK1
83 REAL(SP) :: ANG_WND,WNDALONG,RHOINTNXT,RHOINTCUR,CUMEL
84 REAL(SP) :: TAU_X,TAU_Y, mag_wnd
85 REAL(SP),
POINTER,
DIMENSION(:) :: lcl_dat, gbl_dat
88 REAL(SP),
POINTER :: eta_lcl(:), eta_gbl(:) ,elfgeo_gbl(:),elfgeo_lcl(:)
90 INTEGER I,J,K,I1,I2,J1,J2,II,L1,L2,IERR
102 IF(obc_elevation_forcing_on)
CALL bcond_asl 114 IF (obc_longshore_flow_on)
THEN 129 tau_x = tau_x/real(
ntve(i1),sp)
130 tau_y = tau_y/real(
ntve(i1),sp)
132 tau_x = tau_x * 1000.0_sp
133 tau_y = tau_y * 1000.0_sp
135 mag_wnd = sqrt(tau_x**2+tau_y**2)
138 IF (mag_wnd .GT. 0.0_sp)
THEN 139 ang_wnd=atan2(tau_y,tau_x) -
wdf_ang(i)
145 wndalong=sin(ang_wnd)*mag_wnd
159 allocate(eta_lcl(nobclsf)); eta_lcl=0.0_sp
172 rhointnxt=rhointnxt+(1.0_sp+
rho1(cdx,k))*1.0e3_sp*
dz(cdx,k)
185 IF (i /= nobclsf)
THEN 186 eta_lcl(i)=-(1.0_sp/(0.5_sp*(rhointnxt+rhointcur))) &
187 *((
h(cdx)*rhointnxt-
h(ndx)*rhointcur) &
188 -0.5_sp*1.0e3_sp*(2.0_sp+
rho1(cdx,kbm1)+
rho1(ndx,kbm1)) &
199 cumel=cumel+eta_lcl(i)
233 IF(
isbce(i) == 1)
THEN 236 IF(river_inflow_location ==
'node')
THEN 241 IF((i == j1).OR.(i == j2))
THEN 244 untmp=max(untmp,0.0_sp)
250 ELSE IF(river_inflow_location ==
'edge')
THEN 256 untmp=max(untmp,0.0_sp)
301 if(
isbce(i).eq.1)
then 304 if(river_inflow_location.eq.
'node')
then 309 if((i.eq.j1).or.(i.eq.j2))
then 312 untmp=max(untmp,0.0_sp)
318 else if(river_inflow_location.eq.
'edge')
then 324 untmp=max(untmp,0.0_sp)
331 print*,
'river_inflow_location not correct' 378 if(
isbce(i).eq.1)
then 381 if(river_inflow_location.eq.
'node')
then 386 if((i.eq.j1).or.(i.eq.j2))
then 389 untmp=max(untmp,0.0_sp)
395 else if(river_inflow_location.eq.
'edge')
then 401 untmp=max(untmp,0.0_sp)
408 print*,
'river_inflow_location not correct' 450 IF(numqbc_gl .GT. 0)
THEN 468 IF (wind_type == speed)
THEN 473 ELSEIF(wind_type == stress)
THEN 506 IF (precipitation_on)
THEN 517 IF (groundwater_on)
THEN 529 IF(numqbc_gl .GT. 0)
THEN 540 IF (precipitation_on)
THEN 546 IF (wind_type == speed)
THEN 551 ELSEIF(wind_type == stress)
THEN 565 IF (groundwater_on)
THEN real(sp), dimension(:), allocatable, target alpha
real(sp), dimension(:), allocatable, target qprec
real(sp), dimension(:), allocatable, target h
integer, dimension(:), allocatable, target ibclsf
real(sp), dimension(:,:), allocatable, target v
real(sp), dimension(:), allocatable, target qevap2
logical function dbg_set(vrb)
real(sp), dimension(:,:), allocatable, target rho1
integer, dimension(:), allocatable, target nbclsf
real(sp), dimension(:), allocatable, target qdis2
real(sp), dimension(:), allocatable, target wtsurf_watts
real(sp), dimension(:), allocatable, target qdis
real(sp), dimension(:,:), allocatable, target vf
real(sp), dimension(:), allocatable, target wusurf_save
real(sp), dimension(:), allocatable, target bfwdis2
real(sp), dimension(:,:), allocatable, target u
real(sp), dimension(:), allocatable, target angleq
real(sp), dimension(:), allocatable, target sdis
real(sp), dimension(:), allocatable, target bfwslt
real(sp), dimension(:), allocatable, target swrad
real(sp), dimension(:,:), allocatable, target uf
real(sp), dimension(:), allocatable, target wvsurf2
real(sp), dimension(:), allocatable, target vaf
subroutine, public update_groundwater(NOW, GW_FLUX, GW_TEMP, GW_SALT)
integer, dimension(:), allocatable, target ntve
real(sp), dimension(:), allocatable, target elf
real(sp), dimension(:), allocatable, target bfwdis
real(sp), dimension(:), allocatable, target wusurf
real(sp), dimension(:), allocatable, target bfwtmp
real(sp), dimension(:), allocatable, target wdf_ang
real(sp), dimension(:), allocatable, target wusurf2
real(sp), dimension(:), allocatable, target qevap
subroutine, public update_precipitation(NOW, Qprec, Qevap)
real(sp), dimension(:,:), allocatable, target dz
real(sp), dimension(:), allocatable, target swrad_watts
subroutine bcond_bki(K_RK)
integer, dimension(:), allocatable, target icellq
subroutine, public update_wind(NOW, wstrx, wstry)
subroutine asimple_drag(spdx, spdy, strx, stry)
integer, dimension(:,:), allocatable, target nbve
real(sp), dimension(:), allocatable, target vvwind
real(sp), dimension(:), allocatable, target uaf
subroutine bcond_gwi(K_RK)
real(sp), dimension(:), allocatable, target qprec2
integer, dimension(:), allocatable, target isbce
real(sp), dimension(:), allocatable, target wvsurf_save
subroutine, public update_rivers(NOW, FLUX, TEMP, SALT, WQM, SED, BIO)
real(sp), dimension(:), allocatable, target rbc_geo
subroutine, public update_heat(NOW, HEAT_SWV, HEAT_NET)
real(sp), dimension(:), allocatable, target tdis
real(sp), dimension(:), allocatable, target rbc_wdf
real(sp), dimension(:), allocatable, target wtsurf
integer, parameter dbg_sbr
integer, dimension(:), allocatable, target inodeq
real(sp), dimension(:), allocatable, target wvsurf
real(sp), dimension(:), allocatable, target uuwind