ROMS
Loading...
Searching...
No Matches
rho_eos_mod Module Reference

Functions/Subroutines

subroutine, public rho_eos (ng, tile, model)
 
subroutine rho_eos_tile (ng, tile, model, lbi, ubi, lbj, ubj, imins, imaxs, jmins, jmaxs, nrhs, rmask, hz, z_r, z_w, t, rhoa, rhos, alpha, beta, alfaobeta, pden, rho)
 

Function/Subroutine Documentation

◆ rho_eos()

subroutine, public rho_eos_mod::rho_eos ( integer, intent(in) ng,
integer, intent(in) tile,
integer, intent(in) model )

Definition at line 47 of file rho_eos.F.

48!***********************************************************************
49!
50 USE mod_param
51 USE mod_coupling
52 USE mod_grid
53 USE mod_mixing
54 USE mod_ocean
55 USE mod_stepping
56!
57! Imported variable declarations.
58!
59 integer, intent(in) :: ng, tile, model
60!
61! Local variable declarations.
62!
63 character (len=*), parameter :: MyFile = &
64 & __FILE__
65!
66# include "tile.h"
67!
68# ifdef PROFILE
69 CALL wclock_on (ng, model, 14, __line__, myfile)
70# endif
71 CALL rho_eos_tile (ng, tile, model, &
72 & lbi, ubi, lbj, ubj, &
73 & imins, imaxs, jmins, jmaxs, &
74 & nrhs(ng), &
75# ifdef MASKING
76 & grid(ng) % rmask, &
77# endif
78# ifdef VAR_RHO_2D
79 & grid(ng) % Hz, &
80# endif
81 & grid(ng) % z_r, &
82 & grid(ng) % z_w, &
83 & ocean(ng) % t, &
84# ifdef VAR_RHO_2D
85 & coupling(ng) % rhoA, &
86 & coupling(ng) % rhoS, &
87# endif
88# ifdef BV_FREQUENCY
89 & mixing(ng) % bvf, &
90# endif
91# if defined LMD_SKPP || defined LMD_BKPP || \
92 defined bulk_fluxes || defined balance_operator
93 & mixing(ng) % alpha, &
94 & mixing(ng) % beta, &
95# ifdef LMD_DDMIX
96 & mixing(ng) % alfaobeta, &
97# endif
98# endif
99 & ocean(ng) % pden, &
100 & ocean(ng) % rho)
101# ifdef PROFILE
102 CALL wclock_off (ng, model, 14, __line__, myfile)
103# endif
104!
105 RETURN
type(t_coupling), dimension(:), allocatable coupling
type(t_grid), dimension(:), allocatable grid
Definition mod_grid.F:365
type(t_mixing), dimension(:), allocatable mixing
Definition mod_mixing.F:399
type(t_ocean), dimension(:), allocatable ocean
Definition mod_ocean.F:351
integer, dimension(:), allocatable nrhs
recursive subroutine wclock_off(ng, model, region, line, routine)
Definition timers.F:148
recursive subroutine wclock_on(ng, model, region, line, routine)
Definition timers.F:3

References mod_coupling::coupling, mod_grid::grid, mod_mixing::mixing, mod_stepping::nrhs, mod_ocean::ocean, rho_eos_tile(), wclock_off(), and wclock_on().

Referenced by ad_balance_mod::ad_balance(), ad_initial(), ad_main3d(), zeta_balance_mod::balance_ref(), initial(), main3d(), roms_kernel_mod::nlm_initial(), rp_initial(), and tl_balance_mod::tl_balance().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ rho_eos_tile()

subroutine rho_eos_mod::rho_eos_tile ( integer, intent(in) ng,
integer, intent(in) tile,
integer, intent(in) model,
integer, intent(in) lbi,
integer, intent(in) ubi,
integer, intent(in) lbj,
integer, intent(in) ubj,
integer, intent(in) imins,
integer, intent(in) imaxs,
integer, intent(in) jmins,
integer, intent(in) jmaxs,
integer, intent(in) nrhs,
real(r8), dimension(lbi:,lbj:), intent(in) rmask,
real(r8), dimension(lbi:,lbj:,:), intent(in) hz,
real(r8), dimension(lbi:,lbj:,:), intent(in) z_r,
real(r8), dimension(lbi:,lbj:,0:), intent(in) z_w,
real(r8), dimension(lbi:,lbj:,:,:,:), intent(in) t,
real(r8), dimension(lbi:,lbj:), intent(out) rhoa,
real(r8), dimension(lbi:,lbj:), intent(out) rhos,
real(r8), dimension(lbi:,lbj:), intent(out) alpha,
real(r8), dimension(lbi:,lbj:), intent(out) beta,
real(r8), dimension(lbi:,lbj:,0:), intent(out) alfaobeta,
real(r8), dimension(lbi:,lbj:,:), intent(out) pden,
real(r8), dimension(lbi:,lbj:,:), intent(out) rho )
private

Definition at line 111 of file rho_eos.F.

137!***********************************************************************
138!
139 USE mod_param
140 USE mod_eoscoef
141 USE mod_scalars
142# ifdef SEDIMENT
143 USE mod_sediment
144# endif
145!
148# ifdef DISTRIBUTE
150# endif
151!
152! Imported variable declarations.
153!
154 integer, intent(in) :: ng, tile, model
155 integer, intent(in) :: LBi, UBi, LBj, UBj
156 integer, intent(in) :: IminS, ImaxS, JminS, JmaxS
157 integer, intent(in) :: nrhs
158!
159# ifdef ASSUMED_SHAPE
160# ifdef MASKING
161 real(r8), intent(in) :: rmask(LBi:,LBj:)
162# endif
163# ifdef VAR_RHO_2D
164 real(r8), intent(in) :: Hz(LBi:,LBj:,:)
165# endif
166 real(r8), intent(in) :: z_r(LBi:,LBj:,:)
167 real(r8), intent(in) :: z_w(LBi:,LBj:,0:)
168 real(r8), intent(in) :: t(LBi:,LBj:,:,:,:)
169# ifdef VAR_RHO_2D
170 real(r8), intent(out) :: rhoA(LBi:,LBj:)
171 real(r8), intent(out) :: rhoS(LBi:,LBj:)
172# endif
173# ifdef BV_FREQUENCY
174 real(r8), intent(out) :: bvf(LBi:,LBj:,0:)
175# endif
176# if defined LMD_SKPP || defined LMD_BKPP || \
177 defined bulk_fluxes || defined balance_operator
178 real(r8), intent(out) :: alpha(LBi:,LBj:)
179 real(r8), intent(out) :: beta(LBi:,LBj:)
180# ifdef LMD_DDMIX
181 real(r8), intent(out) :: alfaobeta(LBi:,LBj:,0:)
182# endif
183# endif
184 real(r8), intent(out) :: pden(LBi:,LBj:,:)
185 real(r8), intent(out) :: rho(LBi:,LBj:,:)
186# else
187# ifdef MASKING
188 real(r8), intent(in) :: rmask(LBi:UBi,LBj:UBj)
189# endif
190# ifdef VAR_RHO_2D
191 real(r8), intent(in) :: Hz(LBi:UBi,LBj:UBj,N(ng))
192# endif
193 real(r8), intent(in) :: z_r(LBi:UBi,LBj:UBj,N(ng))
194 real(r8), intent(in) :: z_w(LBi:UBi,LBj:UBj,0:N(ng))
195 real(r8), intent(in) :: t(LBi:UBi,LBj:UBj,N(ng),3,NT(ng))
196# ifdef VAR_RHO_2D
197 real(r8), intent(out) :: rhoA(LBi:UBi,LBj:UBj)
198 real(r8), intent(out) :: rhoS(LBi:UBi,LBj:UBj)
199# endif
200# ifdef BV_FREQUENCY
201 real(r8), intent(out) :: bvf(LBi:UBi,LBj:UBj,0:N(ng))
202# endif
203# if defined LMD_SKPP || defined LMD_BKPP || \
204 defined bulk_fluxes || defined balance_operator
205 real(r8), intent(out) :: alpha(LBi:UBi,LBj:UBj)
206 real(r8), intent(out) :: beta(LBi:UBi,LBj:UBj)
207# ifdef LMD_DDMIX
208 real(r8), intent(out) :: alfaobeta(LBi:UBi,LBj:UBj,0:N(ng))
209# endif
210# endif
211 real(r8), intent(out) :: pden(LBi:UBi,LBj:UBj,N(ng))
212 real(r8), intent(out) :: rho(LBi:UBi,LBj:UBj,N(ng))
213# endif
214!
215! Local variable declarations.
216!
217 integer :: i, ised, itrc, j, k
218
219 real(r8) :: SedDen, Tp, Tpr10, Ts, Tt, sqrtTs
220# ifdef BV_FREQUENCY
221 real(r8) :: bulk_dn, bulk_up, den_dn, den_up
222# endif
223 real(r8) :: cff, cff1, cff2
224
225 real(r8), dimension(0:9) :: C
226# ifdef EOS_TDERIVATIVE
227 real(r8), dimension(0:9) :: dCdT(0:9)
228
229 real(r8), dimension(IminS:ImaxS,N(ng)) :: DbulkDS
230 real(r8), dimension(IminS:ImaxS,N(ng)) :: DbulkDT
231 real(r8), dimension(IminS:ImaxS,N(ng)) :: Dden1DS
232 real(r8), dimension(IminS:ImaxS,N(ng)) :: Dden1DT
233 real(r8), dimension(IminS:ImaxS,N(ng)) :: Scof
234 real(r8), dimension(IminS:ImaxS,N(ng)) :: Tcof
235 real(r8), dimension(IminS:ImaxS,N(ng)) :: wrk
236# endif
237 real(r8), dimension(IminS:ImaxS,N(ng)) :: bulk
238 real(r8), dimension(IminS:ImaxS,N(ng)) :: bulk0
239 real(r8), dimension(IminS:ImaxS,N(ng)) :: bulk1
240 real(r8), dimension(IminS:ImaxS,N(ng)) :: bulk2
241 real(r8), dimension(IminS:ImaxS,N(ng)) :: den
242 real(r8), dimension(IminS:ImaxS,N(ng)) :: den1
243
244# include "set_bounds.h"
245!
246!=======================================================================
247! Nonlinear equation of state. Notice that this equation of state
248! is only valid for potential temperature range of -2C to 40C and
249! a salinity range of 0 PSU to 42 PSU.
250!=======================================================================
251!
252 DO j=jstrt,jendt
253 DO k=1,n(ng)
254 DO i=istrt,iendt
255!
256! Check temperature and salinity lower values. Assign depth to the
257! pressure.
258!
259 tt=max(-2.0_r8,t(i,j,k,nrhs,itemp))
260# ifdef SALINITY
261 ts=max(0.0_r8,t(i,j,k,nrhs,isalt))
262 sqrtts=sqrt(ts)
263# else
264 ts=0.0_r8
265 sqrtts=0.0_r8
266# endif
267 tp=z_r(i,j,k)
268 tpr10=0.1_r8*tp
269!
270!-----------------------------------------------------------------------
271! Compute density (kg/m3) at standard one atmosphere pressure.
272!-----------------------------------------------------------------------
273!
274 c(0)=q00+tt*(q01+tt*(q02+tt*(q03+tt*(q04+tt*q05))))
275 c(1)=u00+tt*(u01+tt*(u02+tt*(u03+tt*u04)))
276 c(2)=v00+tt*(v01+tt*v02)
277# ifdef EOS_TDERIVATIVE
278!
279 dcdt(0)=q01+tt*(2.0_r8*q02+tt*(3.0_r8*q03+tt*(4.0_r8*q04+ &
280 & tt*5.0_r8*q05)))
281 dcdt(1)=u01+tt*(2.0_r8*u02+tt*(3.0_r8*u03+tt*4.0_r8*u04))
282 dcdt(2)=v01+tt*2.0_r8*v02
283# endif
284!
285 den1(i,k)=c(0)+ts*(c(1)+sqrtts*c(2)+ts*w00)
286
287# ifdef EOS_TDERIVATIVE
288!
289! Compute d(den1)/d(S) and d(den1)/d(T) derivatives used in the
290! computation of thermal expansion and saline contraction
291! coefficients.
292!
293 dden1ds(i,k)=c(1)+1.5_r8*c(2)*sqrtts+2.0_r8*w00*ts
294 dden1dt(i,k)=dcdt(0)+ts*(dcdt(1)+sqrtts*dcdt(2))
295# endif
296!
297!-----------------------------------------------------------------------
298! Compute secant bulk modulus.
299!-----------------------------------------------------------------------
300!
301 c(3)=a00+tt*(a01+tt*(a02+tt*(a03+tt*a04)))
302 c(4)=b00+tt*(b01+tt*(b02+tt*b03))
303 c(5)=d00+tt*(d01+tt*d02)
304 c(6)=e00+tt*(e01+tt*(e02+tt*e03))
305 c(7)=f00+tt*(f01+tt*f02)
306 c(8)=g01+tt*(g02+tt*g03)
307 c(9)=h00+tt*(h01+tt*h02)
308# ifdef EOS_TDERIVATIVE
309!
310 dcdt(3)=a01+tt*(2.0_r8*a02+tt*(3.0_r8*a03+tt*4.0_r8*a04))
311 dcdt(4)=b01+tt*(2.0_r8*b02+tt*3.0_r8*b03)
312 dcdt(5)=d01+tt*2.0_r8*d02
313 dcdt(6)=e01+tt*(2.0_r8*e02+tt*3.0_r8*e03)
314 dcdt(7)=f01+tt*2.0_r8*f02
315 dcdt(8)=g02+tt*2.0_r8*g03
316 dcdt(9)=h01+tt*2.0_r8*h02
317# endif
318!
319 bulk0(i,k)=c(3)+ts*(c(4)+sqrtts*c(5))
320 bulk1(i,k)=c(6)+ts*(c(7)+sqrtts*g00)
321 bulk2(i,k)=c(8)+ts*c(9)
322 bulk(i,k)=bulk0(i,k)-tp*(bulk1(i,k)-tp*bulk2(i,k))
323
324# if defined LMD_SKPP || defined LMD_BKPP || \
325 defined bulk_fluxes || defined balance_operator
326!
327! Compute d(bulk)/d(S) and d(bulk)/d(T) derivatives used
328! in the computation of thermal expansion and saline contraction
329! coefficients.
330!
331 dbulkds(i,k)=c(4)+sqrtts*1.5_r8*c(5)- &
332 & tp*(c(7)+sqrtts*1.5_r8*g00-tp*c(9))
333 dbulkdt(i,k)=dcdt(3)+ts*(dcdt(4)+sqrtts*dcdt(5))- &
334 & tp*(dcdt(6)+ts*dcdt(7)- &
335 & tp*(dcdt(8)+ts*dcdt(9)))
336# endif
337!
338!-----------------------------------------------------------------------
339! Compute local "in situ" density anomaly (kg/m3 - 1000).
340!-----------------------------------------------------------------------
341!
342 cff=1.0_r8/(bulk(i,k)+tpr10)
343 den(i,k)=den1(i,k)*bulk(i,k)*cff
344# if defined SEDIMENT && defined SED_DENS
345 sedden=0.0_r8
346 DO ised=1,nst
347 itrc=idsed(ised)
348 cff1=1.0_r8/srho(ised,ng)
349 sedden=sedden+ &
350 & t(i,j,k,nrhs,itrc)* &
351 & (srho(ised,ng)-den(i,k))*cff1
352 END DO
353 den(i,k)=den(i,k)+sedden
354# endif
355 den(i,k)=den(i,k)-1000.0_r8
356# ifdef MASKING
357 den(i,k)=den(i,k)*rmask(i,j)
358# endif
359 END DO
360 END DO
361
362# ifdef VAR_RHO_2D
363!
364!-----------------------------------------------------------------------
365! Compute vertical averaged density (rhoA) and density perturbation
366! (rhoS) used in barotropic pressure gradient. Both values are
367! nondimensional.
368!-----------------------------------------------------------------------
369!
370 DO i=istrt,iendt
371 cff1=den(i,n(ng))*hz(i,j,n(ng))
372 rhos(i,j)=0.5_r8*cff1*hz(i,j,n(ng))
373 rhoa(i,j)=cff1
374 END DO
375 DO k=n(ng)-1,1,-1
376 DO i=istrt,iendt
377 cff1=den(i,k)*hz(i,j,k)
378 rhos(i,j)=rhos(i,j)+hz(i,j,k)*(rhoa(i,j)+0.5_r8*cff1)
379 rhoa(i,j)=rhoa(i,j)+cff1
380 END DO
381 END DO
382 cff2=1.0_r8/rho0
383 DO i=istrt,iendt
384 cff1=1.0_r8/(z_w(i,j,n(ng))-z_w(i,j,0))
385 rhoa(i,j)=cff2*cff1*rhoa(i,j)
386 rhos(i,j)=2.0_r8*cff1*cff1*cff2*rhos(i,j)
387 END DO
388# endif
389
390# if defined BV_FREQUENCY
391!
392!-----------------------------------------------------------------------
393! Compute Brunt-Vaisala frequency (1/s2) at horizontal RHO-points
394! and vertical W-points:
395!
396! bvf = - g/rho d(rho)/d(z).
397!
398! The density anomaly difference is computed by lowering/rising the
399! water parcel above/below adiabatically at W-point depth "z_w".
400!-----------------------------------------------------------------------
401!
402 DO k=1,n(ng)-1
403 DO i=istrt,iendt
404 bulk_up=bulk0(i,k+1)- &
405 & z_w(i,j,k)*(bulk1(i,k+1)- &
406 & bulk2(i,k+1)*z_w(i,j,k))
407 bulk_dn=bulk0(i,k )- &
408 & z_w(i,j,k)*(bulk1(i,k )- &
409 & bulk2(i,k )*z_w(i,j,k))
410 cff1=1.0_r8/(bulk_up+0.1_r8*z_w(i,j,k))
411 cff2=1.0_r8/(bulk_dn+0.1_r8*z_w(i,j,k))
412 den_up=cff1*(den1(i,k+1)*bulk_up)
413 den_dn=cff2*(den1(i,k )*bulk_dn)
414 bvf(i,j,k)=-g*(den_up-den_dn)/ &
415 & (0.5_r8*(den_up+den_dn)* &
416 & (z_r(i,j,k+1)-z_r(i,j,k)))
417 END DO
418 END DO
419 DO i=istrt,iendt
420!! bvf(i,j,0)=bvf(i,j,1)
421!! bvf(i,j,N(ng))=bvf(i,j,N(ng)-1)
422 bvf(i,j,0)=0.0_r8
423 bvf(i,j,n(ng))=0.0_r8
424 END DO
425# endif
426
427# if defined LMD_SKPP || defined LMD_BKPP || \
428 defined bulk_fluxes || defined balance_operator
429!
430!-----------------------------------------------------------------------
431! Compute thermal expansion (1/Celsius) and saline contraction
432! (1/PSU) coefficients.
433!-----------------------------------------------------------------------
434!
435# ifdef LMD_DDMIX
436 DO k=1,n(ng)
437# else
438 DO k=n(ng),n(ng)
439# endif
440 DO i=istrt,iendt
441 tpr10=0.1_r8*z_r(i,j,k)
442!
443! Compute thermal expansion and saline contraction coefficients.
444!
445 cff=bulk(i,k)+tpr10
446 cff1=tpr10*den1(i,k)
447 cff2=bulk(i,k)*cff
448 wrk(i,k)=(den(i,k)+1000.0_r8)*cff*cff
449 tcof(i,k)=-(dbulkdt(i,k)*cff1+ &
450 & dden1dt(i,k)*cff2)
451 scof(i,k)= (dbulkds(i,k)*cff1+ &
452 & dden1ds(i,k)*cff2)
453# ifdef LMD_DDMIX
454 alfaobeta(i,j,k)=tcof(i,k)/scof(i,k)
455# endif
456 END DO
457 IF (k.eq.n(ng)) THEN
458 DO i=istrt,iendt
459 cff=1.0_r8/wrk(i,n(ng))
460 alpha(i,j)=cff*tcof(i,n(ng))
461 beta(i,j)=cff*scof(i,n(ng))
462 END DO
463 END IF
464 END DO
465# endif
466!
467!-----------------------------------------------------------------------
468! Load "in situ" density anomaly (kg/m3 - 1000) and potential
469! density anomaly (kg/m3 - 1000) referenced to the surface into global
470! arrays. Notice that this is done in a separate (i,k) DO-loops to
471! facilitate the adjoint.
472!-----------------------------------------------------------------------
473!
474 DO k=1,n(ng)
475 DO i=istrt,iendt
476 rho(i,j,k)=den(i,k)
477 pden(i,j,k)=(den1(i,k)-1000.0_r8)
478# ifdef MASKING
479 pden(i,j,k)=pden(i,j,k)*rmask(i,j)
480# endif
481 END DO
482 END DO
483 END DO
484!
485!-----------------------------------------------------------------------
486! Exchange boundary data.
487!-----------------------------------------------------------------------
488!
489 IF (ewperiodic(ng).or.nsperiodic(ng)) THEN
490 CALL exchange_r3d_tile (ng, tile, &
491 & lbi, ubi, lbj, ubj, 1, n(ng), &
492 & rho)
493 CALL exchange_r3d_tile (ng, tile, &
494 & lbi, ubi, lbj, ubj, 1, n(ng), &
495 & pden)
496
497# if defined LMD_SKPP || defined LMD_BKPP || \
498 defined bulk_fluxes || defined balance_operator
499# ifdef LMD_DDMIX
500 CALL exchange_w3d_tile (ng, tile, &
501 & lbi, ubi, lbj, ubj, 0, n(ng), &
502 & alfaobeta)
503# endif
504 CALL exchange_r2d_tile (ng, tile, &
505 & lbi, ubi, lbj, ubj, &
506 & alpha)
507 CALL exchange_r2d_tile (ng, tile, &
508 & lbi, ubi, lbj, ubj, &
509 & beta)
510# endif
511
512# ifdef VAR_RHO_2D
513 CALL exchange_r2d_tile (ng, tile, &
514 & lbi, ubi, lbj, ubj, &
515 & rhoa)
516 CALL exchange_r2d_tile (ng, tile, &
517 & lbi, ubi, lbj, ubj, &
518 & rhos)
519# endif
520
521# ifdef BV_FREQUENCY
522 CALL exchange_w3d_tile (ng, tile, &
523 & lbi, ubi, lbj, ubj, 0, n(ng), &
524 & bvf)
525# endif
526 END IF
527
528# ifdef DISTRIBUTE
529!
530 CALL mp_exchange3d (ng, tile, model, 2, &
531 & lbi, ubi, lbj, ubj, 1, n(ng), &
532 & nghostpoints, &
533 & ewperiodic(ng), nsperiodic(ng), &
534 & rho, pden)
535
536# if defined LMD_SKPP || defined LMD_BKPP || \
537 defined bulk_fluxes || defined balance_operator
538# ifdef LMD_DDMIX
539 CALL mp_exchange3d (ng, tile, model, 1, &
540 & lbi, ubi, lbj, ubj, 0, n(ng), &
541 & nghostpoints, &
542 & ewperiodic(ng), nsperiodic(ng), &
543 & alfaobeta)
544# endif
545 CALL mp_exchange2d (ng, tile, model, 2, &
546 & lbi, ubi, lbj, ubj, &
547 & nghostpoints, &
548 & ewperiodic(ng), nsperiodic(ng), &
549 & alpha, beta)
550# endif
551
552# ifdef VAR_RHO_2D
553 CALL mp_exchange2d (ng, tile, model, 2, &
554 & lbi, ubi, lbj, ubj, &
555 & nghostpoints, &
556 & ewperiodic(ng), nsperiodic(ng), &
557 & rhoa, rhos)
558# endif
559
560# ifdef BV_FREQUENCY
561 CALL mp_exchange3d (ng, tile, model, 1, &
562 & lbi, ubi, lbj, ubj, 0, n(ng), &
563 & nghostpoints, &
564 & ewperiodic(ng), nsperiodic(ng), &
565 & bvf)
566# endif
567# endif
568!
569 RETURN
subroutine exchange_r2d_tile(ng, tile, lbi, ubi, lbj, ubj, a)
subroutine exchange_r3d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, a)
subroutine exchange_w3d_tile(ng, tile, lbi, ubi, lbj, ubj, lbk, ubk, a)
real(r8), parameter b03
Definition mod_eoscoef.F:32
real(r8), parameter e02
Definition mod_eoscoef.F:38
real(r8), parameter h02
Definition mod_eoscoef.F:49
real(r8), parameter q03
Definition mod_eoscoef.F:53
real(r8), parameter a03
Definition mod_eoscoef.F:27
real(r8), parameter q04
Definition mod_eoscoef.F:54
real(r8), parameter q05
Definition mod_eoscoef.F:55
real(r8), parameter u01
Definition mod_eoscoef.F:57
real(r8), parameter f00
Definition mod_eoscoef.F:40
real(r8), parameter v01
Definition mod_eoscoef.F:62
real(r8), parameter g01
Definition mod_eoscoef.F:44
real(r8), parameter a04
Definition mod_eoscoef.F:28
real(r8), parameter f01
Definition mod_eoscoef.F:41
real(r8), parameter g00
Definition mod_eoscoef.F:43
real(r8), parameter u02
Definition mod_eoscoef.F:58
real(r8), parameter d01
Definition mod_eoscoef.F:34
real(r8), parameter w00
Definition mod_eoscoef.F:64
real(r8), parameter b00
Definition mod_eoscoef.F:29
real(r8), parameter u03
Definition mod_eoscoef.F:59
real(r8), parameter d00
Definition mod_eoscoef.F:33
real(r8), parameter d02
Definition mod_eoscoef.F:35
real(r8), parameter g03
Definition mod_eoscoef.F:46
real(r8), parameter b01
Definition mod_eoscoef.F:30
real(r8), parameter u04
Definition mod_eoscoef.F:60
real(r8), parameter u00
Definition mod_eoscoef.F:56
real(r8), parameter v02
Definition mod_eoscoef.F:63
real(r8), parameter q01
Definition mod_eoscoef.F:51
real(r8), parameter e00
Definition mod_eoscoef.F:36
real(r8), parameter h00
Definition mod_eoscoef.F:47
real(r8), parameter g02
Definition mod_eoscoef.F:45
real(r8), parameter e03
Definition mod_eoscoef.F:39
real(r8), parameter a00
Definition mod_eoscoef.F:24
real(r8), parameter a01
Definition mod_eoscoef.F:25
real(r8), parameter a02
Definition mod_eoscoef.F:26
real(r8), parameter b02
Definition mod_eoscoef.F:31
real(r8), parameter h01
Definition mod_eoscoef.F:48
real(r8), parameter e01
Definition mod_eoscoef.F:37
real(r8), parameter f02
Definition mod_eoscoef.F:42
real(r8), parameter v00
Definition mod_eoscoef.F:61
real(r8), parameter q02
Definition mod_eoscoef.F:52
real(r8), parameter q00
Definition mod_eoscoef.F:50
integer, dimension(:), allocatable n
Definition mod_param.F:479
integer nghostpoints
Definition mod_param.F:710
integer nst
Definition mod_param.F:521
logical, dimension(:), allocatable ewperiodic
logical, dimension(:), allocatable nsperiodic
integer isalt
integer itemp
real(dp) g
real(dp) rho0
real(r8), dimension(:,:), allocatable srho
integer, dimension(:), allocatable idsed
subroutine mp_exchange2d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, nghost, ew_periodic, ns_periodic, a, b, c, d)
subroutine mp_exchange3d(ng, tile, model, nvar, lbi, ubi, lbj, ubj, lbk, ubk, nghost, ew_periodic, ns_periodic, a, b, c, d)

References mod_eoscoef::a00, mod_eoscoef::a01, mod_eoscoef::a02, mod_eoscoef::a03, mod_eoscoef::a04, mod_eoscoef::b00, mod_eoscoef::b01, mod_eoscoef::b02, mod_eoscoef::b03, mod_eoscoef::d00, mod_eoscoef::d01, mod_eoscoef::d02, mod_eoscoef::e00, mod_eoscoef::e01, mod_eoscoef::e02, mod_eoscoef::e03, mod_scalars::ewperiodic, exchange_2d_mod::exchange_r2d_tile(), exchange_3d_mod::exchange_r3d_tile(), exchange_3d_mod::exchange_w3d_tile(), mod_eoscoef::f00, mod_eoscoef::f01, mod_eoscoef::f02, mod_scalars::g, mod_eoscoef::g00, mod_eoscoef::g01, mod_eoscoef::g02, mod_eoscoef::g03, mod_scalars::gorho0, mod_eoscoef::h00, mod_eoscoef::h01, mod_eoscoef::h02, mod_sediment::idsed, mod_scalars::isalt, mod_scalars::itemp, mp_exchange_mod::mp_exchange2d(), mp_exchange_mod::mp_exchange3d(), mod_param::nghostpoints, mod_scalars::nsperiodic, mod_param::nst, mod_eoscoef::q00, mod_eoscoef::q01, mod_eoscoef::q02, mod_eoscoef::q03, mod_eoscoef::q04, mod_eoscoef::q05, mod_scalars::r0, mod_scalars::rho0, mod_scalars::s0, mod_scalars::scoef, mod_sediment::srho, mod_scalars::t0, mod_scalars::tcoef, mod_eoscoef::u00, mod_eoscoef::u01, mod_eoscoef::u02, mod_eoscoef::u03, mod_eoscoef::u04, mod_eoscoef::v00, mod_eoscoef::v01, mod_eoscoef::v02, and mod_eoscoef::w00.

Referenced by rho_eos().

Here is the call graph for this function:
Here is the caller graph for this function: