My Project
adv_uv_edge_gcy.f90
Go to the documentation of this file.
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 !/===========================================================================/
13 ! Copyright (c) 2007, The University of Massachusetts Dartmouth
14 ! Produced at the School of Marine Science & Technology
15 ! Marine Ecosystem Dynamics Modeling group
16 ! All rights reserved.
17 !
18 ! FVCOM has been developed by the joint UMASSD-WHOI research team. For
19 ! details of authorship and attribution of credit please see the FVCOM
20 ! technical manual or contact the MEDM group.
21 !
22 !
23 ! This file is part of FVCOM. For details, see http://fvcom.smast.umassd.edu
24 ! The full copyright notice is contained in the file COPYRIGHT located in the
25 ! root directory of the FVCOM code. This original header must be maintained
26 ! in all distributed versions.
27 !
28 ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
29 ! AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
30 ! THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
31 ! PURPOSE ARE DISCLAIMED.
32 !
33 !/---------------------------------------------------------------------------/
34 ! CVS VERSION INFORMATION
35 ! $Id$
36 ! $Name$
37 ! $Revision$
38 !/===========================================================================/
39 
40 !==============================================================================!
41 
42  SUBROUTINE adv_uv_edge_gcy
43 
44 !==============================================================================!
45 ! this subroutine calculate advective, coriolis, pressure gradient, etc in !
46 ! x and y momentum equations except vertical diffusion terms for internal mode !
47 !==============================================================================!
48 
49  USE all_vars
50  USE mod_utils
51  USE mod_spherical
52  USE mod_northpole
53  USE bcs
54  USE mod_wd
55 
56 
57 
58 
59 
60  IMPLICIT NONE
61  REAL(SP) :: XFLUX(0:NT,KB),YFLUX(0:NT,KB)
62  REAL(SP) :: PSTX_TM(0:NT,KB),PSTY_TM(0:NT,KB)
63  REAL(SP) :: COFA1,COFA2,COFA3,COFA4,COFA5,COFA6,COFA7,COFA8
64  REAL(SP) :: XADV,YADV,TXXIJ,TYYIJ,TXYIJ,UN
65  REAL(SP) :: VISCOF,VISCOF1,VISCOF2,TEMP,TPA,TPB
66  REAL(SP) :: XIJA,YIJA,XIJB,YIJB,UIJ,VIJ
67  REAL(SP) :: DIJ,ELIJ,TMPA,TMPB,TMP,XFLUXV,YFLUXV
68  REAL(SP) :: FACT,FM1,EXFLUX,ISWETTMP
69  INTEGER :: I,IA,IB,J1,J2,K1,K2,K3,K4,K5,K6,K,II,J,I1,I2
70 
71 
72  REAL(SP) :: UIJ1,VIJ1,UIJ2,VIJ2,FXX,FYY
73  REAL(SP) :: UK1(KB),UK2(KB),UK3(KB),UK4(KB),UK5(KB),UK6(KB), &
74  VK1(KB),VK2(KB),VK3(KB),VK4(KB),VK5(KB),VK6(KB)
75 
76 
77  IF(dbg_set(dbg_sbr)) WRITE(ipt,*) "Start: adv_uv_edge_gcy"
78 
79 !------------------------------------------------------------------------------!
80  SELECT CASE(horizontal_mixing_type)
81  CASE ('closure')
82  fact = 1.0_sp
83  fm1 = 0.0_sp
84  CASE('constant')
85  fact = 0.0_sp
86  fm1 = 1.0_sp
87  CASE DEFAULT
88  CALL fatal_error("UNKNOW HORIZONTAL MIXING TYPE:",&
89  & trim(horizontal_mixing_type) )
90  END SELECT
91 
92 !
93 !-----Initialize Flux Variables------------------------------------------------!
94 !
95  viscofm = 0.0_sp
96 
97  xflux = 0.0_sp
98  yflux = 0.0_sp
99  pstx_tm = 0.0_sp
100  psty_tm = 0.0_sp
101 
102 !
103 !-----Loop Over Edges and Accumulate Flux--------------------------------------!
104 !
105 
106  DO i=1,ne
107  ia=iec(i,1)
108  ib=iec(i,2)
109  j1=ienode(i,1)
110  j2=ienode(i,2)
111 
112 
113  elij=0.5_sp*(egf(j1)+egf(j2))
114 
115 
116 
117 
118  k1=nbe(ia,1)
119  k2=nbe(ia,2)
120  k3=nbe(ia,3)
121  k4=nbe(ib,1)
122  k5=nbe(ib,2)
123  k6=nbe(ib,3)
124  xija=xijc(i)-xc(ia)
125  yija=yijc(i)-yc(ia)
126  xijb=xijc(i)-xc(ib)
127  yijb=yijc(i)-yc(ib)
128 
129  uk1 = u(k1,:)
130  uk2 = u(k2,:)
131  uk3 = u(k3,:)
132  uk4 = u(k4,:)
133  uk5 = u(k5,:)
134  uk6 = u(k6,:)
135  vk1 = v(k1,:)
136  vk2 = v(k2,:)
137  vk3 = v(k3,:)
138  vk4 = v(k4,:)
139  vk5 = v(k5,:)
140  vk6 = v(k6,:)
141  IF(k1 == 0) CALL ghostuv3(ia,1,uk1,vk1)
142  IF(k2 == 0) CALL ghostuv3(ia,2,uk2,vk2)
143  IF(k3 == 0) CALL ghostuv3(ia,3,uk3,vk3)
144  IF(k4 == 0) CALL ghostuv3(ib,1,uk4,vk4)
145  IF(k5 == 0) CALL ghostuv3(ib,2,uk5,vk5)
146  IF(k6 == 0) CALL ghostuv3(ib,3,uk6,vk6)
147 
148  DO k=1,kbm1
149  dij=0.5_sp*(dt(j1)*dz(j1,k)+dt(j2)*dz(j2,k))
150  IF(iswetct(ia)*iswetc(ia) == 1 .OR. iswetct(ib)*iswetc(ib) == 1)THEN
151 
152  cofa1=a1u(ia,1)*u(ia,k)+a1u(ia,2)*uk1(k)+a1u(ia,3)*uk2(k)+a1u(ia,4)*uk3(k)
153  cofa2=a2u(ia,1)*u(ia,k)+a2u(ia,2)*uk1(k)+a2u(ia,3)*uk2(k)+a2u(ia,4)*uk3(k)
154  cofa5=a1u(ia,1)*v(ia,k)+a1u(ia,2)*vk1(k)+a1u(ia,3)*vk2(k)+a1u(ia,4)*vk3(k)
155  cofa6=a2u(ia,1)*v(ia,k)+a2u(ia,2)*vk1(k)+a2u(ia,3)*vk2(k)+a2u(ia,4)*vk3(k)
156 ! COFA1=A1U(IA,1)*U(IA,K)+A1U(IA,2)*U(K1,K)+A1U(IA,3)*U(K2,K)+A1U(IA,4)*U(K3,K)
157 ! COFA2=A2U(IA,1)*U(IA,K)+A2U(IA,2)*U(K1,K)+A2U(IA,3)*U(K2,K)+A2U(IA,4)*U(K3,K)
158 ! COFA5=A1U(IA,1)*V(IA,K)+A1U(IA,2)*V(K1,K)+A1U(IA,3)*V(K2,K)+A1U(IA,4)*V(K3,K)
159 ! COFA6=A2U(IA,1)*V(IA,K)+A2U(IA,2)*V(K1,K)+A2U(IA,3)*V(K2,K)+A2U(IA,4)*V(K3,K)
160 
161  uij1=u(ia,k)+cofa1*xija+cofa2*yija
162  vij1=v(ia,k)+cofa5*xija+cofa6*yija
163 
164  cofa3=a1u(ib,1)*u(ib,k)+a1u(ib,2)*uk4(k)+a1u(ib,3)*uk5(k)+a1u(ib,4)*uk6(k)
165  cofa4=a2u(ib,1)*u(ib,k)+a2u(ib,2)*uk4(k)+a2u(ib,3)*uk5(k)+a2u(ib,4)*uk6(k)
166  cofa7=a1u(ib,1)*v(ib,k)+a1u(ib,2)*vk4(k)+a1u(ib,3)*vk5(k)+a1u(ib,4)*vk6(k)
167  cofa8=a2u(ib,1)*v(ib,k)+a2u(ib,2)*vk4(k)+a2u(ib,3)*vk5(k)+a2u(ib,4)*vk6(k)
168 ! COFA3=A1U(IB,1)*U(IB,K)+A1U(IB,2)*U(K4,K)+A1U(IB,3)*U(K5,K)+A1U(IB,4)*U(K6,K)
169 ! COFA4=A2U(IB,1)*U(IB,K)+A2U(IB,2)*U(K4,K)+A2U(IB,3)*U(K5,K)+A2U(IB,4)*U(K6,K)
170 ! COFA7=A1U(IB,1)*V(IB,K)+A1U(IB,2)*V(K4,K)+A1U(IB,3)*V(K5,K)+A1U(IB,4)*V(K6,K)
171 ! COFA8=A2U(IB,1)*V(IB,K)+A2U(IB,2)*V(K4,K)+A2U(IB,3)*V(K5,K)+A2U(IB,4)*V(K6,K)
172 
173  uij2=u(ib,k)+cofa3*xijb+cofa4*yijb
174  vij2=v(ib,k)+cofa7*xijb+cofa8*yijb
175 
176  uij=0.5_sp*(uij1+uij2)
177  vij=0.5_sp*(vij1+vij2)
178  exflux = dij*(-uij*dltyc(i) + vij*dltxc(i))
179 
180 
181 !
182 !-------ADD THE VISCOUS TERM & ADVECTION TERM---------------------------------!
183 !
184 
185  viscof1=art(ia)*sqrt(cofa1**2+cofa6**2+0.5_sp*(cofa2+cofa5)**2)
186  viscof2=art(ib)*sqrt(cofa3**2+cofa8**2+0.5_sp*(cofa4+cofa7)**2)
187 
188 ! VISCOF=FACT*0.5_SP*HORCON*(VISCOF1+VISCOF2)/HPRNU + FM1*HORCON
189 ! VISCOF=FACT*0.5_SP*HORCON*(VISCOF1+VISCOF2) + FM1*HORCON
190 
191  ! David moved HPRNU and added HVC
192  viscof=(fact*0.5_sp*(viscof1*cc_hvc(ia)+viscof2*cc_hvc(ib)) + fm1*0.5_sp*(cc_hvc(ia)+cc_hvc(ib)))/hprnu
193  viscofm(ia,k) = viscofm(ia,k) + viscof
194  viscofm(ib,k) = viscofm(ib,k) + viscof
195 
196  txxij=(cofa1+cofa3)*viscof
197  tyyij=(cofa6+cofa8)*viscof
198  txyij=0.5_sp*(cofa2+cofa4+cofa5+cofa7)*viscof
199  fxx=dij*(txxij*dltyc(i)-txyij*dltxc(i))
200  fyy=dij*(txyij*dltyc(i)-tyyij*dltxc(i))
201 
202 
203  xadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*uij2+(1.0_sp+sign(1.0_sp,exflux))*uij1)*0.5_sp
204  yadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*vij2+(1.0_sp+sign(1.0_sp,exflux))*vij1)*0.5_sp
205 
206  !!CALCULATE BOUNDARY FLUX AUGMENTERS
207  tpa = float(1-isbc(i))*epor(ia)
208  tpb = float(1-isbc(i))*epor(ib)
209 
210 
211  !!ACCUMULATE ADVECTIVE + DIFFUSIVE + BAROTROPIC PRESSURE GRADIENT TERMS
212  xflux(ia,k)=xflux(ia,k)+xadv*tpa+fxx*tpa
213  yflux(ia,k)=yflux(ia,k)+yadv*tpa+fyy*tpa
214  xflux(ib,k)=xflux(ib,k)-xadv*tpb-fxx*tpb
215  yflux(ib,k)=yflux(ib,k)-yadv*tpb-fyy*tpb
216 
217  END IF
218 ! for spherical coordinator and domain across 360^o latitude
219 ! PSTX_TM(IA,K)=PSTX_TM(IA,K)-GRAV*DT1(IA)*ELIJ*DLTYC(I)
220 ! PSTY_TM(IA,K)=PSTY_TM(IA,K)+GRAV*DT1(IA)*ELIJ*DLTXC(I)
221 ! PSTX_TM(IB,K)=PSTX_TM(IB,K)+GRAV*DT1(IB)*ELIJ*DLTYC(I)
222 ! PSTY_TM(IB,K)=PSTY_TM(IB,K)-GRAV*DT1(IB)*ELIJ*DLTXC(I)
223  pstx_tm(ia,k)=pstx_tm(ia,k)-grav_e(ia)*dt1(ia)*dz1(ia,k)*elij*dltyc(i)
224  psty_tm(ia,k)=psty_tm(ia,k)+grav_e(ia)*dt1(ia)*dz1(ia,k)*elij*dltxc(i)
225  pstx_tm(ib,k)=pstx_tm(ib,k)+grav_e(ib)*dt1(ib)*dz1(ib,k)*elij*dltyc(i)
226  psty_tm(ib,k)=psty_tm(ib,k)-grav_e(ib)*dt1(ib)*dz1(ib,k)*elij*dltxc(i)
227 
228  END DO
229  END DO
230 
231 
232  DO i=1,n
233  iswettmp = iswetct(i)*iswetc(i)
234  DO k=1,kbm1
235  xflux(i,k) = xflux(i,k)*iswettmp
236  yflux(i,k) = yflux(i,k)*iswettmp
237  pstx_tm(i,k)= pstx_tm(i,k)*iswettmp
238  psty_tm(i,k)= psty_tm(i,k)*iswettmp
239  END DO
240  DO k=1,kbm1
241  xflux(i,k)=xflux(i,k)+pstx_tm(i,k)
242  yflux(i,k)=yflux(i,k)+psty_tm(i,k)
243  END DO
244  END DO
245 
246 !
247 !-------ADD VERTICAL CONVECTIVE FLUX, CORIOLIS TERM AND BAROCLINIC PG TERM----!
248 !
249  DO i=1,n
250  IF(iswetct(i)*iswetc(i) == 1)THEN
251 
252 
253  DO k=1,kbm1
254 
255  IF(k == 1) THEN
256  xfluxv=-w(i,k+1)*(u(i,k)*dz1(i,k+1)+u(i,k+1)*dz1(i,k))/&
257  (dz1(i,k)+dz1(i,k+1))
258  yfluxv=-w(i,k+1)*(v(i,k)*dz1(i,k+1)+v(i,k+1)*dz1(i,k))/&
259  (dz1(i,k)+dz1(i,k+1))
260  ELSE IF(k == kbm1) THEN
261  xfluxv= w(i,k)*(u(i,k)*dz1(i,k-1)+u(i,k-1)*dz1(i,k))/&
262  (dz1(i,k)+dz1(i,k-1))
263  yfluxv= w(i,k)*(v(i,k)*dz1(i,k-1)+v(i,k-1)*dz1(i,k))/&
264  (dz1(i,k)+dz1(i,k-1))
265  ELSE
266  xfluxv= w(i,k)*(u(i,k)*dz1(i,k-1)+u(i,k-1)*dz1(i,k))/&
267  (dz1(i,k)+dz1(i,k-1))-&
268  w(i,k+1)*(u(i,k)*dz1(i,k+1)+u(i,k+1)*dz1(i,k))/&
269  (dz1(i,k)+dz1(i,k+1))
270  yfluxv= w(i,k)*(v(i,k)*dz1(i,k-1)+v(i,k-1)*dz1(i,k))/&
271  (dz1(i,k)+dz1(i,k-1))-&
272  w(i,k+1)*(v(i,k)*dz1(i,k+1)+v(i,k+1)*dz1(i,k))/&
273  (dz1(i,k)+dz1(i,k+1))
274  END IF
275 ! XFLUX(I,K)=XFLUX(I,K)+XFLUXV/DZ(K)*ART(I)&
276 ! +DRHOX(I,K)-COR(I)*V(I,K)*DT1(I)*ART(I)
277 ! YFLUX(I,K)=YFLUX(I,K)+YFLUXV/DZ(K)*ART(I)&
278 ! +DRHOY(I,K)+COR(I)*U(I,K)*DT1(I)*ART(I)
279  xflux(i,k)=xflux(i,k)+xfluxv*art(i)&
280  +drhox(i,k)-cor(i)*v(i,k)*dt1(i)*dz1(i,k)*art(i)
281  yflux(i,k)=yflux(i,k)+yfluxv*art(i)&
282  +drhoy(i,k)+cor(i)*u(i,k)*dt1(i)*dz1(i,k)*art(i)
283 
284 
285  END DO
286  END IF
287  END DO
288 
289 
290  DO i=1,n
291  IF(isbce(i) == 2) THEN
292  DO k=1,kbm1
293  xflux(i,k)=0.0_sp
294  yflux(i,k)=0.0_sp
295  END DO
296  END IF
297  END DO
298 
299 
300  !ADJUST FLUX AT RIVER INFLOWS
301  IF(numqbc >= 1) THEN
302  IF(river_inflow_location == 'node') THEN
303  DO ii=1,numqbc
304  j=inodeq(ii)
305  i1=nbve(j,1)
306  i2=nbve(j,ntve(j))
307  DO k=1,kbm1
308  vlctyq(ii)=qdis(ii)/qarea(ii)
309 ! TEMP=0.5_SP*QDIS(II)*VQDIST(II,K)*VLCTYQ(II)
310  temp=0.5_sp*qdis(ii)*vqdist(ii,k)*vqdist(ii,k)*vlctyq(ii)/dz(j,k)
311 ! XFLUX(I1,K)=XFLUX(I1,K)-TEMP/DZ(J,K)*COS(ANGLEQ(II))
312 ! XFLUX(I2,K)=XFLUX(I2,K)-TEMP/DZ(J,K)*COS(ANGLEQ(II))
313 ! YFLUX(I1,K)=YFLUX(I1,K)-TEMP/DZ(J,K)*SIN(ANGLEQ(II))
314 ! YFLUX(I2,K)=YFLUX(I2,K)-TEMP/DZ(J,K)*SIN(ANGLEQ(II))
315  xflux(i1,k)=xflux(i1,k)-temp*cos(angleq(ii))
316  xflux(i2,k)=xflux(i2,k)-temp*cos(angleq(ii))
317  yflux(i1,k)=yflux(i1,k)-temp*sin(angleq(ii))
318  yflux(i2,k)=yflux(i2,k)-temp*sin(angleq(ii))
319  END DO
320  END DO
321  ELSE IF(river_inflow_location == 'edge') THEN
322  DO ii=1,numqbc
323  i1=icellq(ii)
324  DO k=1,kbm1
325  vlctyq(ii)=qdis(ii)/qarea(ii)
326 ! TEMP=QDIS(II)*VQDIST(II,K)*VLCTYQ(II)
327  temp=qdis(ii)*vqdist(ii,k)*vqdist(ii,k)*vlctyq(ii)/dz1(i1,k)
328 ! XFLUX(I1,K)=XFLUX(I1,K)-TEMP/DZ1(I1,K)*COS(ANGLEQ(II))
329 ! YFLUX(I1,K)=YFLUX(I1,K)-TEMP/DZ1(I1,K)*SIN(ANGLEQ(II))
330  xflux(i1,k)=xflux(i1,k)-temp*cos(angleq(ii))
331  yflux(i1,k)=yflux(i1,k)-temp*sin(angleq(ii))
332  END DO
333  END DO
334  ELSE
335  print*,'RIVER_INFLOW_LOCATION NOT CORRECT'
336  CALL pstop
337  END IF
338  END IF
339 
340 
341  DO i=1,n
342  DO k=1,kbm1
343  ! UF(I,K)=U(I,K)*DT1(I,K)/D1(I,K)-DTI*XFLUX(I,K)/ART(I)/D1(I,K)
344  ! VF(I,K)=V(I,K)*DT1(I,K)/D1(I,K)-DTI*YFLUX(I,K)/ART(I)/D1(I,K)
345  uf(i,k)=u(i,k)*dt1(i)/d1(i)-dti*xflux(i,k)/art(i)/(d1(i)*dz1(i,k))
346  vf(i,k)=v(i,k)*dt1(i)/d1(i)-dti*yflux(i,k)/art(i)/(d1(i)*dz1(i,k))
347  IF(adcor_on) THEN
348  ! FOR ADCOR
349  ubeta(i,k)=xflux(i,k) +cor(i)*v(i,k)*dt1(i)*dz1(i,k)*art(i)*epor(i)
350  vbeta(i,k)=yflux(i,k) -cor(i)*u(i,k)*dt1(i)*dz1(i,k)*art(i)*epor(i)
351  ENDIF
352  END DO
353  END DO
354 
355 
356  DO i =1,n
357  IF(iswetct(i)*iswetc(i) .NE. 1)THEN
358  DO k=1,kbm1
359  uf(i,k)=0.0_sp
360  vf(i,k)=0.0_sp
361  ubeta(i,k)=0.0_sp
362  vbeta(i,k)=0.0_sp
363  END DO
364  END IF
365  END DO
366 
367  DO k=1,kb
368  viscofm(:,k) = viscofm(:,k)/art(:)
369  END DO
370 
371  IF(dbg_set(dbg_sbr)) WRITE(ipt,*) "End: adv_uv_edge_gcy"
372 
373  END SUBROUTINE adv_uv_edge_gcy
374 !==============================================================================!
integer, dimension(:,:), allocatable, target ienode
Definition: mod_main.f90:1029
real(sp), dimension(:), allocatable, target epor
Definition: mod_main.f90:1056
real(sp), dimension(:), allocatable, target cor
Definition: mod_main.f90:1113
real(sp), dimension(:), allocatable, target d1
Definition: mod_main.f90:1116
real(sp), dimension(:), allocatable, target art
Definition: mod_main.f90:1009
real(sp), dimension(:,:), allocatable, target v
Definition: mod_main.f90:1269
real(sp), dimension(:,:), allocatable, target vqdist
Definition: mod_main.f90:1217
logical function dbg_set(vrb)
Definition: mod_utils.f90:182
real(sp), dimension(:), allocatable, target qdis
Definition: mod_main.f90:1220
real(sp), dimension(:), allocatable, target yc
Definition: mod_main.f90:1004
real(sp), dimension(:), allocatable cc_hvc
Definition: mod_main.f90:1302
real(sp), dimension(:,:), allocatable, target w
Definition: mod_main.f90:1279
real(sp), dimension(:), allocatable, target dltxc
Definition: mod_main.f90:1040
real(sp), dimension(:), allocatable, target egf
Definition: mod_main.f90:1136
subroutine ghostuv3(I, JJ, UAKK, VAKK)
Definition: ghostuv.f90:86
real(sp), dimension(:,:), allocatable, target a1u
Definition: mod_main.f90:1331
integer, dimension(:), allocatable iswetct
Definition: mod_wd.f90:54
real(sp), dimension(:,:), allocatable, target vf
Definition: mod_main.f90:1282
real(sp), dimension(:,:), allocatable, target viscofm
Definition: mod_main.f90:1360
real(sp), dimension(:,:), allocatable, target u
Definition: mod_main.f90:1268
integer, dimension(:), allocatable, target isbc
Definition: mod_main.f90:1026
real(sp), dimension(:), allocatable, target angleq
Definition: mod_main.f90:1228
integer, dimension(:,:), allocatable, target iec
Definition: mod_main.f90:1028
real(sp), dimension(:,:), allocatable, target drhox
Definition: mod_main.f90:1326
real(sp), dimension(:,:), allocatable, target vbeta
Definition: mod_main.f90:1272
real(sp), dimension(:), allocatable, target grav_e
Definition: mod_main.f90:1013
real(sp), dimension(:,:), allocatable, target uf
Definition: mod_main.f90:1281
subroutine pstop
Definition: mod_utils.f90:273
real(sp), dimension(:,:), allocatable, target ubeta
Definition: mod_main.f90:1271
integer, dimension(:), allocatable, target ntve
Definition: mod_main.f90:1022
integer, dimension(:,:), allocatable, target nbe
Definition: mod_main.f90:1020
real(sp), dimension(:), allocatable, target xijc
Definition: mod_main.f90:1044
real(sp), dimension(:), allocatable, target qarea
Definition: mod_main.f90:1226
real(sp), dimension(:,:), allocatable, target drhoy
Definition: mod_main.f90:1327
subroutine adv_uv_edge_gcy
real(sp), dimension(:), allocatable, target dltyc
Definition: mod_main.f90:1041
real(sp), dimension(:,:), allocatable, target dz
Definition: mod_main.f90:1092
integer, dimension(:), allocatable, target icellq
Definition: mod_main.f90:1215
real(sp), dimension(:), allocatable, target yijc
Definition: mod_main.f90:1045
real(sp), dimension(:,:), allocatable, target a2u
Definition: mod_main.f90:1332
integer, dimension(:), allocatable iswetc
Definition: mod_wd.f90:52
integer, dimension(:,:), allocatable, target nbve
Definition: mod_main.f90:1034
real(sp), dimension(:), allocatable, target dt1
Definition: mod_main.f90:1117
subroutine fatal_error(ER1, ER2, ER3, ER4)
Definition: mod_utils.f90:230
real(sp), dimension(:), allocatable, target xc
Definition: mod_main.f90:1003
real(sp), dimension(:,:), allocatable, target dz1
Definition: mod_main.f90:1096
integer, dimension(:), allocatable, target isbce
Definition: mod_main.f90:1027
real(sp), dimension(:), allocatable, target vlctyq
Definition: mod_main.f90:1229
integer, parameter dbg_sbr
Definition: mod_utils.f90:69
integer, dimension(:), allocatable, target inodeq
Definition: mod_main.f90:1214
real(sp), dimension(:), allocatable, target dt
Definition: mod_main.f90:1133