My Project
Functions/Subroutines
bcond_gcy.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine bcond_gcy (IDX, K_RK)
 

Function/Subroutine Documentation

◆ bcond_gcy()

subroutine bcond_gcy ( integer, intent(in)  IDX,
integer  K_RK 
)

Definition at line 57 of file bcond_gcy.f90.

57 
58 !==============================================================================|
59  USE all_vars
60  USE bcs
61  USE mod_obcs
62  USE mod_force
63  USE mod_par
64  USE mod_wd
65  USE mod_bulk
66 
67 
68 
69  IMPLICIT NONE
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)
75 ! REAL(SP) :: TIME1,FACT,UFACT,FORCE,QPREC,QEVAP,UI,VI,UNTMP,VNTMP,TX,TY,HFLUX
76  REAL(SP) :: TIME1,FACT,UFACT,FORCE,UI,VI,UNTMP,VNTMP,TX,TY,HFLUX
77 
78 ! REAL(SP) :: DTXTMP,DTYTMP,QPREC2,QEVAP2,SPRO,WDS,CD,SPCP,ROSEA
79  REAL(SP) :: DTXTMP,DTYTMP,SPRO,WDS,CD,SPCP,ROSEA,ROSEA1(MT),SPRO1(MT)
80  REAL(SP) :: PHAI_IJ,ALPHA1,DHFLUXTMP,DHSHORTTMP,HSHORT,TIMERK1
81 
82  ! VARIABLES FOR LONG SHORE FLOW STUFF
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
86 
87 
88  REAL(SP),POINTER :: eta_lcl(:), eta_gbl(:) ,elfgeo_gbl(:),elfgeo_lcl(:)
89 
90  INTEGER I,J,K,I1,I2,J1,J2,II,L1,L2,IERR
91  INTEGER cdx,ndx,K_RK
92 
93 
94  if(dbg_set(dbg_sbr)) write(ipt,*) "Start: bcond_gcy: ",idx
95 
96 
97  SELECT CASE(idx)
98 !==============================================================================|
99  CASE(1) !Surface Elevation Boundary Conditions (Tidal Forcing) !
100 !==============================================================================|
101 
102  IF(obc_elevation_forcing_on) CALL bcond_asl
103  CALL bcond_asl_clp
104  CALL bcond_gwi(k_rk)
105  CALL bcond_bki(k_rk)
106  CALL bcond_ore
107 
108 !
109 !--Allow setup/down on north boundary in response to longshore wind
110 !--Corrects for Wind-Driven Barotropic Response (See Schwing 1989)
111 !--Implemented by Jamie Pringle - Rewritten for parallel by D.Stuebe
112 !
113 
114  IF (obc_longshore_flow_on) THEN
115 
116  ! CALCULATE THE ADJUSTMENT DUE TO WIND DRIVEN FLOW ALLONG THE
117  ! COAST OF NOVA SCOTIA
118  DO i = 1,nobclsf
119  tau_x = 0.0_sp
120  tau_y = 0.0_sp
121 
122  i1= ibclsf(i)
123  DO j = 1,ntve(i1)
124  k = nbve(i1,j)
125  tau_x = tau_x + wusurf2(k)
126  tau_y = tau_y + wvsurf2(k)
127  END DO
128 
129  tau_x = tau_x/real(ntve(i1),sp)
130  tau_y = tau_y/real(ntve(i1),sp)
131 
132  tau_x = tau_x * 1000.0_sp ! Approximate scale factor
133  tau_y = tau_y * 1000.0_sp ! Approximate scale factor
134 
135  mag_wnd = sqrt(tau_x**2+tau_y**2)
136 
137 
138  IF (mag_wnd .GT. 0.0_sp) THEN
139  ang_wnd=atan2(tau_y,tau_x) - wdf_ang(i)
140  ELSE
141  ang_wnd=0.0_sp
142  END IF
143 
144 
145  wndalong=sin(ang_wnd)*mag_wnd
146 
147  ! SUBTRACT THE COMPONET ALONG SHORE AND INTO THE DOMAIN FROM
148  ! THE SEA SURFACE HEIGHT
149 
150  elf(i1)=elf(i1) - wndalong*rbc_wdf(i)
151 
152  END DO
153 
154 
155 
156  ! NOW ADJUSTMENT ELF UNDER THERMAL WIND SUCH THAT THE BOTTOM
157  ! VELOCITY IS ZERO
158 
159  allocate(eta_lcl(nobclsf)); eta_lcl=0.0_sp
160 
161  rhointcur= 0.0_sp
162  rhointnxt = 0.0_sp
163 
164  DO i=nobclsf,1,-1 ! COUNT BACKWARDS
165  ndx = nbclsf(i)
166  cdx = ibclsf(i)
167 
168  !INTEGRATE RHO IN DEPTH, CONVERT TO MKS UNITS DAMIT
169  rhointcur=rhointnxt
170  rhointnxt=0.0_sp
171  DO k=1,kbm1
172  rhointnxt=rhointnxt+(1.0_sp+rho1(cdx,k))*1.0e3_sp*dz(cdx,k)
173  END DO
174 
175 !ESTIMATE DENSITY GRADIENT, AND MODIFY BOUNDARY ELEVATION
176 !NOTE THE FACTOR OF 1000 AND 2 TO COMPENSATE FOR THE
177 !FACT THAT THE MODEL STORES RHO1 AS SIGMA, AND IN CGS.
178 
179 ! ADJUST THE SEA SURFACE HEIGHT FOR A MEAN FLOW DUE TO DENSITY GRADIENT
180 ! CALCULATE THE THERMAL WIND AND ADJUST THE SEA SURFACE HEIGHT SO THAT THE BOTTOM
181 ! BOUNDARY IS A LEVEL OF NO MOTION:
182 !
183 ! ETATAN=[ -1/(Rho_bar)*(del(h*rho)/del(s) - Rho_bot*(del(h)/del(s) ] *del(s)
184 !
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)) &
189  *(h(cdx)-h(ndx)))
190  END IF
191 
192  END DO
193 
194  cumel = 0.0_sp
195 
196  IF(serial) THEN
197  DO i=nobclsf,1,-1 ! COUNT BACKWARD FROM THE SHELF TOWARD SHORE
198  ndx=ibclsf(i)
199  cumel=cumel+eta_lcl(i)
200  elf(ndx)=elf(ndx)+cumel*rbc_geo(i)
201 ! write(ipt,*) "NDX=",NDX,"ELF(NDX)=",ELF(NDX)
202  END DO
203  END IF
204 
205 
206  DEALLOCATE(eta_lcl)
207 
208  END IF
209 
210 
211 !==============================================================================|
212  CASE(2) !External Mode Velocity Boundary Conditions |
213 !==============================================================================|
214 
215  DO i=1,n
216 
217 !
218 !--2 SOLID BOUNDARY EDGES------------------------------------------------------|
219 !
220 !Q&C< commented on 06/22/04
221 ! IF(ISBCE(I) == 3) THEN
222 ! UAF(I)=0.0_SP
223 ! VAF(I)=0.0_SP
224 ! END IF
225 
226 ! GWC SPEED REPLACE ABOVE 4 LINES
227 ! UAF(LISBCE_3(1:NISBCE_3)) = 0.
228 ! VAF(LISBCE_3(1:NISBCE_3)) = 0.
229 
230 !
231 !--1 SOLID BOUNDARY EDGE-------------------------------------------------------|
232 !
233  IF(isbce(i) == 1) THEN
234  alpha1=alpha(i)
235  IF(numqbc > 0) THEN
236  IF(river_inflow_location == 'node') THEN
237  DO j=1,numqbc
238  i1=inodeq(j)
239  j1=nbve(i1,1)
240  j2=nbve(i1,ntve(i1))
241  IF((i == j1).OR.(i == j2)) THEN
242  untmp=uaf(i)*cos(angleq(j))+vaf(i)*sin(angleq(j))
243  vntmp=-uaf(i)*sin(angleq(j))+vaf(i)*cos(angleq(j))
244  untmp=max(untmp,0.0_sp)
245  uaf(i)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
246  vaf(i)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
247  GOTO 21
248  END IF
249  END DO
250  ELSE IF(river_inflow_location == 'edge') THEN
251  DO j=1,numqbc
252  j1=icellq(j)
253  IF(i == j1) THEN
254  untmp=uaf(i)*cos(angleq(j))+vaf(i)*sin(angleq(j))
255  vntmp=-uaf(i)*sin(angleq(j))+vaf(i)*cos(angleq(j))
256  untmp=max(untmp,0.0_sp)
257  uaf(i)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
258  vaf(i)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
259  GOTO 21
260  END IF
261  END DO
262  END IF
263 
264  END IF
265 
266 !Q&C< commented on 06/22/04
267 ! UI= UAF(I)*(SIN(ALPHA1))**2-VAF(I)*SIN(ALPHA1)*COS(ALPHA1)
268 ! VI=-UAF(I)*SIN(ALPHA1)*COS(ALPHA1)+VAF(I)*(COS(ALPHA1))**2
269 ! UAF(I)=UI
270 ! VAF(I)=VI
271 
272 ! UI= UAS(I)*(SIN(ALPHA1))**2-VAS(I)*SIN(ALPHA1)*COS(ALPHA1)
273 ! VI=-UAS(I)*SIN(ALPHA1)*COS(ALPHA1)+VAS(I)*(COS(ALPHA1))**2
274 ! UAS(I)=UI
275 ! VAS(I)=VI
276 ! UAS(I)=UAF(I)
277 ! VAS(I)=VAF(I)
278 
279 21 CONTINUE
280  END IF
281  END DO
282 
283 
284 !==============================================================================|
285  CASE(3) !3-D Velocity Boundary Conditions !
286 !==============================================================================|
287 
288 ! GWC SPEED REPLACE NEXT 4 LINES
289 ! UF(LISBCE_3(1:NISBCE_3),1:KBM1) = 0.
290 ! VF(LISBCE_3(1:NISBCE_3),1:KBM1) = 0.
291 
292  do i= 1, n
293  do k =1, kbm1
294 !Q&C< commented on 06/22/04
295 ! if(isbce(i).eq.3) then
296 ! uf(i,k)=0.0_SP
297 ! vf(i,k)=0.0_SP
298 ! end if
299 !Q&C> 06/22/04
300 
301  if(isbce(i).eq.1) then
302  alpha1=alpha(i)
303  if(numqbc.ge.1) then
304  if(river_inflow_location.eq.'node') then
305  do j=1,numqbc
306  i1=inodeq(j)
307  j1=nbve(i1,1)
308  j2=nbve(i1,ntve(i1))
309  if((i.eq.j1).or.(i.eq.j2)) then
310  untmp=uf(i,k)*cos(angleq(j))+vf(i,k)*sin(angleq(j))
311  vntmp=-uf(i,k)*sin(angleq(j))+vf(i,k)*cos(angleq(j))
312  untmp=max(untmp,0.0_sp)
313  uf(i,k)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
314  vf(i,k)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
315  goto 31
316  end if
317  end do
318  else if(river_inflow_location.eq.'edge') then
319  do j=1,numqbc
320  j1=icellq(j)
321  if(i.eq.j1) then
322  untmp=uf(i,k)*cos(angleq(j))+vf(i,k)*sin(angleq(j))
323  vntmp=-uf(i,k)*sin(angleq(j))+vf(i,k)*cos(angleq(j))
324  untmp=max(untmp,0.0_sp)
325  uf(i,k)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
326  vf(i,k)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
327  goto 31
328  end if
329  end do
330  else
331  print*, 'river_inflow_location not correct'
332  call pstop
333  end if
334  end if
335 
336 !Q&C< commented on 06/22/04
337 ! ui= uf(i,k)*(sin(alpha1))**2-vf(i,k)*sin(alpha1)*cos(alpha1)
338 ! vi=-uf(i,k)*sin(alpha1)*cos(alpha1)+vf(i,k)*(cos(alpha1))**2
339 ! uf(i,k)=ui
340 ! vf(i,k)=vi
341 
342 ! ui= us(i,k)*(sin(alpha1))**2-vs(i,k)*sin(alpha1)*cos(alpha1)
343 ! vi=-us(i,k)*sin(alpha1)*cos(alpha1)+vs(i,k)*(cos(alpha1))**2
344 ! us(i,k)=ui
345 ! vs(i,k)=vi
346 ! us(i,k)=uf(i,k)
347 ! vs(i,k)=vf(i,k)
348 !Q&C> 06/22/04
349 
350 31 continue
351  end if
352  end do
353  end do
354 
355 
356 
357 !==============================================================================|
358  CASE(4) !Blank !
359 !==============================================================================|
360 
361 !==============================================================================|
362  CASE(5) !!SOLID BOUNDARY CONDITIONS ON U AND V !
363 !==============================================================================|
364 
365 
366 ! GWC SPEED REPLACE NEXT 4 LINES
367 ! U(LISBCE_3(1:NISBCE_3),1:KBM1) = 0.
368 ! V(LISBCE_3(1:NISBCE_3),1:KBM1) = 0.
369 
370  do i= 1, n
371  do k =1, kbm1
372 !Q&C< commented on 06/22/04
373 ! if(isbce(i).eq.3) then
374 ! u(i,k)=0.0_SP
375 ! v(i,k)=0.0_SP
376 ! end if
377 !Q&C> 06/22/04
378  if(isbce(i).eq.1) then
379  alpha1=alpha(i)
380  if(numqbc.ge.1) then
381  if(river_inflow_location.eq.'node') then
382  do j=1,numqbc
383  i1=inodeq(j)
384  j1=nbve(i1,1)
385  j2=nbve(i1,ntve(i1))
386  if((i.eq.j1).or.(i.eq.j2)) then
387  untmp=u(i,k)*cos(angleq(j))+v(i,k)*sin(angleq(j))
388  vntmp=-u(i,k)*sin(angleq(j))+v(i,k)*cos(angleq(j))
389  untmp=max(untmp,0.0_sp)
390  u(i,k)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
391  v(i,k)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
392  goto 51
393  end if
394  end do
395  else if(river_inflow_location.eq.'edge') then
396  do j=1,numqbc
397  j1=icellq(j)
398  if(i.eq.j1) then
399  untmp=u(i,k)*cos(angleq(j))+v(i,k)*sin(angleq(j))
400  vntmp=-u(i,k)*sin(angleq(j))+v(i,k)*cos(angleq(j))
401  untmp=max(untmp,0.0_sp)
402  u(i,k)=untmp*cos(angleq(j))-vntmp*sin(angleq(j))
403  v(i,k)=untmp*sin(angleq(j))+vntmp*cos(angleq(j))
404  goto 51
405  end if
406  end do
407  else
408  print*, 'river_inflow_location not correct'
409  call pstop
410  end if
411  end if
412 
413 !Q&C< commented on 06/22/04
414 ! ui= u(i,k)*(sin(alpha1))**2-v(i,k)*sin(alpha1)*cos(alpha1)
415 ! vi=-u(i,k)*sin(alpha1)*cos(alpha1)+v(i,k)*(cos(alpha1))**2
416 ! u(i,k)=ui
417 ! v(i,k)=vi
418 
419 ! ui= us(i,k)*(sin(alpha1))**2-vs(i,k)*sin(alpha1)*cos(alpha1)
420 ! vi=-us(i,k)*sin(alpha1)*cos(alpha1)+vs(i,k)*(cos(alpha1))**2
421 ! us(i,k)=ui
422 ! vs(i,k)=vi
423 ! us(i,k)=u(i,k)
424 ! vs(i,k)=v(i,k)
425 !Q&C> 06/22/04
426 
427 51 continue
428  end if
429  end do
430  end do
431 
432 
433 
434 !==============================================================================|
435  CASE(6) !Blank !
436 !==============================================================================|
437 
438 !==============================================================================|
439  CASE(7) !Blank !
440 !==============================================================================|
441 
442 !==============================================================================|
443  CASE(8) !!SURFACE FORCING FOR INTERNAL MODE !
444 !==============================================================================|
445 
446 !
447 !--Fresh Water Discharge-------------------------------------------------------|
448 !
449 
450  IF(numqbc_gl .GT. 0) THEN
451  CALL update_rivers(inttime,qdis,temp=tdis,salt=sdis)
452 
453  qdis = qdis*ramp
454 
455 !# if defined (WATER_QUALITY)
456 ! DO N1 = 1, NB
457 ! ! NOT YET OPERATIONAL!!!
458 ! WDIS(:,N1) = UFACT*DWDIS(:,N1,L1) + FACT*DWDIS(:,N1,L2)
459 ! END DO
460 !# endif
461 
462  END IF
463 
464 
465 
466  IF (wind_on) THEN
467 
468  IF (wind_type == speed)THEN
469  CALL update_wind(inttime,uuwind,vvwind)
470 
472 
473  ELSEIF(wind_type == stress)THEN
474  CALL update_wind(inttime,wusurf,wvsurf)
475  END IF
476 
477  ! For output only - don't divide by density
478  wusurf_save = wusurf * ramp
479  wvsurf_save = wvsurf * ramp
480 
481 
482  wusurf = -wusurf * ramp * 0.001_sp
483  wvsurf = -wvsurf * ramp * 0.001_sp
484 
485  END IF
486 
487  IF (heating_on) THEN
488  CALL update_heat(inttime,swrad_watts,wtsurf_watts)
489 
490  ! LOAD INTO THES VARIABLE TO SAVE THE FORCING IN THE CORRECT UNITS
491  swrad_watts = swrad_watts * ramp
492  wtsurf_watts = wtsurf_watts * ramp
493 
494  spcp=4.2174e3_sp
495  rosea = 1.023e3_sp
496  spro = spcp*rosea
497 
498  wtsurf = -wtsurf_watts/spro
499  swrad = -swrad_watts/spro
500 
501 
502  END IF
503 
504 
505 
506  IF (precipitation_on) THEN
507  CALL update_precipitation(inttime,qprec,qevap)
508  END IF
509 
510 
511 
512 
513 !
514 !-- Set Groundwater flux ------------------------------------------------------|
515 !
516 
517  IF (groundwater_on) THEN
518  CALL update_groundwater(inttime,bfwdis,gw_temp=bfwtmp,gw_salt=bfwslt)
519  bfwdis = ramp * bfwdis
520  END IF
521 
522 !==============================================================================|
523  CASE(9) !External Mode Surface BCs (River Flux/Wind Stress/Heat/Moist) !
524 !==============================================================================|
525 !
526 !-Freshwater Flux: Set Based on Linear Interpolation Between Two Data Times---|
527 !
528 
529  IF(numqbc_gl .GT. 0) THEN
530  CALL update_rivers(exttime,qdis2)
531 
532  qdis2 = qdis2*ramp
533 
534  END IF
535 
536 !
537 !-- Set Precipitation/Evaporation/Surface Wind ---------------------------------|
538 !
539 
540  IF (precipitation_on) THEN
541  CALL update_precipitation(exttime,qprec2,qevap2)
542  END IF
543 
544  IF (wind_on) THEN
545 
546  IF (wind_type == speed)THEN
547  CALL update_wind(exttime,uuwind,vvwind)
548 
550 
551  ELSEIF(wind_type == stress)THEN
552  CALL update_wind(exttime,wusurf2,wvsurf2)
553  END IF
554 
555 
556  wusurf2 = wusurf2 * ramp * 0.001_sp
557  wvsurf2 = wvsurf2 * ramp * 0.001_sp
558 
559  END IF
560 
561 !
562 !-- Set Groundwater flux ------------------------------------------------------|
563 !
564 
565  IF (groundwater_on) THEN
566  CALL update_groundwater(exttime,bfwdis2)
567  bfwdis2 = ramp * bfwdis2
568  END IF
569  END SELECT
570 
571  if(dbg_set(dbg_sbr)) write(ipt,*)&
572  & "End: bcond_gcy"
573 
real(sp), dimension(:), allocatable, target alpha
Definition: mod_main.f90:1336
real(sp), dimension(:), allocatable, target qprec
Definition: mod_main.f90:1239
real(sp), dimension(:), allocatable, target h
Definition: mod_main.f90:1131
integer, dimension(:), allocatable, target ibclsf
Definition: mod_main.f90:1080
subroutine bcond_asl
Definition: mod_obcs.f90:262
real(sp), dimension(:,:), allocatable, target v
Definition: mod_main.f90:1269
real(sp), dimension(:), allocatable, target qevap2
Definition: mod_main.f90:1237
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:,:), allocatable, target rho1
Definition: mod_main.f90:1309
integer, dimension(:), allocatable, target nbclsf
Definition: mod_main.f90:1082
real(sp), dimension(:), allocatable, target qdis2
Definition: mod_main.f90:1222
real(sp), dimension(:), allocatable, target wtsurf_watts
Definition: mod_main.f90:1174
real(sp), dimension(:), allocatable, target qdis
Definition: mod_main.f90:1220
real(sp), dimension(:,:), allocatable, target vf
Definition: mod_main.f90:1282
real(sp), dimension(:), allocatable, target wusurf_save
Definition: mod_main.f90:1193
real(sp), dimension(:), allocatable, target bfwdis2
Definition: mod_main.f90:1198
real(sp), dimension(:,:), allocatable, target u
Definition: mod_main.f90:1268
real(sp), dimension(:), allocatable, target angleq
Definition: mod_main.f90:1228
real(sp), dimension(:), allocatable, target sdis
Definition: mod_main.f90:1225
real(sp), dimension(:), allocatable, target bfwslt
Definition: mod_main.f90:1201
real(sp), dimension(:), allocatable, target swrad
Definition: mod_main.f90:1177
real(sp), dimension(:,:), allocatable, target uf
Definition: mod_main.f90:1281
real(sp), dimension(:), allocatable, target wvsurf2
Definition: mod_main.f90:1183
subroutine pstop
Definition: mod_utils.f90:273
real(sp), dimension(:), allocatable, target vaf
Definition: mod_main.f90:1106
subroutine, public update_groundwater(NOW, GW_FLUX, GW_TEMP, GW_SALT)
Definition: mod_force.f90:6200
integer, dimension(:), allocatable, target ntve
Definition: mod_main.f90:1022
real(sp), dimension(:), allocatable, target elf
Definition: mod_main.f90:1140
real(sp), dimension(:), allocatable, target bfwdis
Definition: mod_main.f90:1196
real(sp), dimension(:), allocatable, target wusurf
Definition: mod_main.f90:1191
real(sp), dimension(:), allocatable, target bfwtmp
Definition: mod_main.f90:1200
subroutine bcond_ore
Definition: mod_obcs.f90:439
real(sp), dimension(:), allocatable, target wdf_ang
Definition: mod_main.f90:1078
real(sp), dimension(:), allocatable, target wusurf2
Definition: mod_main.f90:1182
real(sp), dimension(:), allocatable, target qevap
Definition: mod_main.f90:1240
subroutine, public update_precipitation(NOW, Qprec, Qevap)
Definition: mod_force.f90:6593
real(sp), dimension(:,:), allocatable, target dz
Definition: mod_main.f90:1092
real(sp), dimension(:), allocatable, target swrad_watts
Definition: mod_main.f90:1173
subroutine bcond_bki(K_RK)
Definition: mod_obcs.f90:404
integer, dimension(:), allocatable, target icellq
Definition: mod_main.f90:1215
subroutine, public update_wind(NOW, wstrx, wstry)
Definition: mod_force.f90:6449
subroutine asimple_drag(spdx, spdy, strx, stry)
Definition: mod_bulk.f90:49
integer, dimension(:,:), allocatable, target nbve
Definition: mod_main.f90:1034
real(sp), dimension(:), allocatable, target vvwind
Definition: mod_main.f90:1233
real(sp), dimension(:), allocatable, target uaf
Definition: mod_main.f90:1105
subroutine bcond_gwi(K_RK)
Definition: mod_obcs.f90:369
real(sp), dimension(:), allocatable, target qprec2
Definition: mod_main.f90:1236
integer, dimension(:), allocatable, target isbce
Definition: mod_main.f90:1027
real(sp), dimension(:), allocatable, target wvsurf_save
Definition: mod_main.f90:1194
subroutine bcond_asl_clp
Definition: mod_obcs.f90:344
subroutine, public update_rivers(NOW, FLUX, TEMP, SALT, WQM, SED, BIO)
Definition: mod_force.f90:6032
real(sp), dimension(:), allocatable, target rbc_geo
Definition: mod_main.f90:1083
subroutine, public update_heat(NOW, HEAT_SWV, HEAT_NET)
Definition: mod_force.f90:6330
real(sp), dimension(:), allocatable, target tdis
Definition: mod_main.f90:1224
real(sp), dimension(:), allocatable, target rbc_wdf
Definition: mod_main.f90:1084
real(sp), dimension(:), allocatable, target wtsurf
Definition: mod_main.f90:1178
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
integer, dimension(:), allocatable, target inodeq
Definition: mod_main.f90:1214
real(sp), dimension(:), allocatable, target wvsurf
Definition: mod_main.f90:1192
real(sp), dimension(:), allocatable, target uuwind
Definition: mod_main.f90:1232
Here is the call graph for this function: