My Project
Functions/Subroutines
adv_uv_edge_gcn.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine adv_uv_edge_gcn
 

Function/Subroutine Documentation

◆ adv_uv_edge_gcn()

subroutine adv_uv_edge_gcn ( )

Definition at line 43 of file adv_uv_edge_gcn.f90.

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 bcs
51  USE mod_utils
52  USE mod_spherical
53  USE mod_northpole
54  USE mod_wd
55 
56 
57 
58 
59 
60 
61  IMPLICIT NONE
62  REAL(SP) :: XFLUX(0:NT,KB),YFLUX(0:NT,KB)
63  REAL(SP) :: PSTX_TM(0:NT,KB),PSTY_TM(0:NT,KB)
64  REAL(SP) :: COFA1,COFA2,COFA3,COFA4,COFA5,COFA6,COFA7,COFA8
65  REAL(SP) :: XADV,YADV,TXXIJ,TYYIJ,TXYIJ
66  REAL(SP) :: VISCOF,VISCOF1,VISCOF2,TEMP,TPA,TPB
67  REAL(SP) :: XIJA,YIJA,XIJB,YIJB,UIJ,VIJ
68  REAL(SP) :: DIJ,ELIJ,TMPA,TMPB,TMP,XFLUXV,YFLUXV
69  REAL(SP) :: FACT,FM1,EXFLUX,ISWETTMP
70  INTEGER :: I,IA,IB,J1,J2,K1,K2,K3,K4,K5,K6,K,II,J,I1,I2
71 
72 
73  REAL(SP) :: UIJ1,VIJ1,UIJ2,VIJ2,FXX,FYY
74 
75 
76 !# if defined (THIN_DAM)
77  REAL(SP) :: A1UIA1,A1UIA2,A1UIA3,A1UIA4,A2UIA1,A2UIA2,A2UIA3,A2UIA4
78  REAL(SP) :: A1UIB1,A1UIB2,A1UIB3,A1UIB4,A2UIB1,A2UIB2,A2UIB3,A2UIB4
79  INTEGER :: J11,J12,J21,J22,E1,E2,ISBCE1,ISBC_TMP,IB_TMP
80  LOGICAL :: ISMATCH
81 !# endif
82 
83  IF(dbg_set(dbg_sbr)) WRITE(ipt,*) "Start: adv_uv_edge_gcn.F"
84 
85 !------------------------------------------------------------------------------!
86  SELECT CASE(horizontal_mixing_type)
87  CASE ('closure')
88  fact = 1.0_sp
89  fm1 = 0.0_sp
90  CASE('constant')
91  fact = 0.0_sp
92  fm1 = 1.0_sp
93  CASE DEFAULT
94  CALL fatal_error("UNKNOW HORIZONTAL MIXING TYPE:",&
95  & trim(horizontal_mixing_type) )
96  END SELECT
97 
98 !
99 !-----Initialize Flux Variables------------------------------------------------!
100 !
101  viscofm = 0.0_sp
102 
103  xflux = 0.0_sp
104  yflux = 0.0_sp
105  pstx_tm = 0.0_sp
106  psty_tm = 0.0_sp
107 
108 !
109 !-----Loop Over Edges and Accumulate Flux--------------------------------------!
110 !
111 
112  DO i=1,ne
113  ia=iec(i,1)
114  ib=iec(i,2)
115 
116  j1=ienode(i,1)
117  j2=ienode(i,2)
118 
119 
120  elij=0.5_sp*(egf(j1)+egf(j2))
121 
122 
123 
124 
125  k1=nbe(ia,1)
126  k2=nbe(ia,2)
127  k3=nbe(ia,3)
128  k4=nbe(ib,1)
129  k5=nbe(ib,2)
130  k6=nbe(ib,3)
131 !# if defined (SPHERICAL)
132 ! XIJA=DLTXNE(I,1)
133 ! YIJA=DLTYNE(I,1)
134 ! XIJB=DLTXNE(I,2)
135 ! YIJB=DLTYNE(I,2)
136 !# if defined (THIN_DAM)
137 ! IF(IB==0.AND.E_DAM_MATCH(IA)/=0)XIJB=DLTXNE_DAM_MATCH(I)
138 ! IF(IB==0.AND.E_DAM_MATCH(IA)/=0)YIJB=DLTYNE_DAM_MATCH(I)
139 !# endif
140 !# else
141 ! XIJA=XIJC(I)-XC(IA)
142 ! YIJA=YIJC(I)-YC(IA)
143 ! XIJB=XIJC(I)-XC(IB)
144 ! YIJB=YIJC(I)-YC(IB)
145 !# if defined (THIN_DAM)
146 ! IF(IB==0.AND.E_DAM_MATCH(IA)/=0)XIJB=XIJC(I)-XC(E_DAM_MATCH(IA))
147 ! IF(IB==0.AND.E_DAM_MATCH(IA)/=0)YIJB=YIJC(I)-YC(E_DAM_MATCH(IA))
148 !# endif
149 !# endif
150 
151  DO k=1,kbm1
152  dij=0.5_sp*(dt(j1)*dz(j1,k)+dt(j2)*dz(j2,k))
153  IF(iswetct(ia)*iswetc(ia) == 1 .OR. iswetct(ib)*iswetc(ib) == 1)THEN
154 
155  xija=xijc(i)-xc(ia)
156  yija=yijc(i)-yc(ia)
157  xijb=xijc(i)-xc(ib)
158  yijb=yijc(i)-yc(ib)
159 
160  ib_tmp = ib
161 !----------------------Used for Dam Model By Jadon--------------------
162  a1uia1 = a1u(ia,1)
163  a1uia2 = a1u(ia,2)
164  a1uia3 = a1u(ia,3)
165  a1uia4 = a1u(ia,4)
166  a2uia1 = a2u(ia,1)
167  a2uia2 = a2u(ia,2)
168  a2uia3 = a2u(ia,3)
169  a2uia4 = a2u(ia,4)
170 
171  a1uib1 = a1u(ib_tmp,1)
172  a1uib2 = a1u(ib_tmp,2)
173  a1uib3 = a1u(ib_tmp,3)
174  a1uib4 = a1u(ib_tmp,4)
175  a2uib1 = a2u(ib_tmp,1)
176  a2uib2 = a2u(ib_tmp,2)
177  a2uib3 = a2u(ib_tmp,3)
178  a2uib4 = a2u(ib_tmp,4)
179 !---------------------------------------------------------------------
180 
181 !! if(k==1)then
182 !! if((egid(ia)==6794.and.egid(ib_tmp)==6793).or.(egid(ia)=&
183 !! &=6793.and.egid(ib_tmp)==6794))then
184 !! print*,'k1,k2,k3:',egid(k1),egid(k2),egid(k3)
185 !! print*,'k4,k5,k6:',egid(k4),egid(k5),egid(k6)
186 !! print*,'ia_a1u:',egid(ia),A1UIA1,A1UIA2,A1UIA3,A1UIA4
187 !! print*,'ia_a2u:',egid(ia),A2UIA1,A2UIA2,A2UIA3,A2UIA4
188 !! print*,'ib_a1u:',egid(ib_tmp),A1UIB1,A1UIB2,A1UIB3,A1UIB4
189 !! print*,'ib_a2u:',egid(ib_tmp),A2UIB1,A2UIB2,A2UIB3,A2UIB4
190 !! endif
191 !! if((egid(ia)==3350.and.egid(ib_tmp)==3351).or.(egid(ia)=&
192 !! &=3351.and.egid(ib_tmp)==3350))then
193 !! print*,'k1,k2,k3:',egid(k1),egid(k2),egid(k3)
194 !! print*,'k4,k5,k6:',egid(k4),egid(k5),egid(k6)
195 !! print*,'ia_a1u:',egid(ia),A1UIA1,A1UIA2,A1UIA3,A1UIA4
196 !! print*,'ia_a2u:',egid(ia),A2UIA1,A2UIA2,A2UIA3,A2UIA4
197 !! print*,'ib_a1u:',egid(ib_tmp),A1UIB1,A1UIB2,A1UIB3,A1UIB4
198 !! print*,'ib_a2u:',egid(ib_tmp),A2UIB1,A2UIB2,A2UIB3,A2UIB4
199 !! endif
200 !! endif
201 
202  cofa1=a1uia1*u(ia,k)+a1uia2*u(k1,k)+a1uia3*u(k2,k)+a1uia4*u(k3,k)
203  cofa2=a2uia1*u(ia,k)+a2uia2*u(k1,k)+a2uia3*u(k2,k)+a2uia4*u(k3,k)
204  cofa5=a1uia1*v(ia,k)+a1uia2*v(k1,k)+a1uia3*v(k2,k)+a1uia4*v(k3,k)
205  cofa6=a2uia1*v(ia,k)+a2uia2*v(k1,k)+a2uia3*v(k2,k)+a2uia4*v(k3,k)
206 ! 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)
207 ! 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)
208 ! 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)
209 ! 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)
210 
211  uij1=u(ia,k)+cofa1*xija+cofa2*yija
212  vij1=v(ia,k)+cofa5*xija+cofa6*yija
213 
214  cofa3=a1uib1*u(ib_tmp,k)+a1uib2*u(k4,k)+a1uib3*u(k5,k)+a1uib4*u(k6,k)
215  cofa4=a2uib1*u(ib_tmp,k)+a2uib2*u(k4,k)+a2uib3*u(k5,k)+a2uib4*u(k6,k)
216  cofa7=a1uib1*v(ib_tmp,k)+a1uib2*v(k4,k)+a1uib3*v(k5,k)+a1uib4*v(k6,k)
217  cofa8=a2uib1*v(ib_tmp,k)+a2uib2*v(k4,k)+a2uib3*v(k5,k)+a2uib4*v(k6,k)
218 ! 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)
219 ! 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)
220 ! 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)
221 ! 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)
222 
223  uij2=u(ib_tmp,k)+cofa3*xijb+cofa4*yijb
224  vij2=v(ib_tmp,k)+cofa7*xijb+cofa8*yijb
225 
226  uij=0.5_sp*(uij1+uij2)
227  vij=0.5_sp*(vij1+vij2)
228  exflux = dij*(-uij*dltyc(i) + vij*dltxc(i))
229 
230 !
231 !-------ADD THE VISCOUS TERM & ADVECTION TERM---------------------------------!
232 !
233 
234  viscof1=art(ia)*sqrt(cofa1**2+cofa6**2+0.5_sp*(cofa2+cofa5)**2)
235  viscof2=art(ib_tmp)*sqrt(cofa3**2+cofa8**2+0.5_sp*(cofa4+cofa7)**2)
236 
237 ! VISCOF=FACT*0.5_SP*HORCON*(VISCOF1+VISCOF2)/HPRNU + FM1*HORCON
238 ! VISCOF=FACT*0.5_SP*HORCON*(VISCOF1+VISCOF2) + FM1*HORCON
239  ! David moved HPRNU and added HVC
240  viscof=(fact*0.5_sp*(viscof1*cc_hvc(ia)+viscof2*cc_hvc(ib_tmp)) + fm1*0.5_sp*(cc_hvc(ia)+cc_hvc(ib_tmp)))/hprnu
241  viscofm(ia,k) = viscofm(ia,k) + viscof
242  viscofm(ib_tmp,k) = viscofm(ib_tmp,k) + viscof
243 
244  txxij=(cofa1+cofa3)*viscof
245  tyyij=(cofa6+cofa8)*viscof
246  txyij=0.5_sp*(cofa2+cofa4+cofa5+cofa7)*viscof
247  fxx=dij*(txxij*dltyc(i)-txyij*dltxc(i))
248  fyy=dij*(txyij*dltyc(i)-tyyij*dltxc(i))
249 
250  xadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*uij2+(1.0_sp+sign(1.0_sp,exflux))*uij1)*0.5_sp
251  yadv=exflux*((1.0_sp-sign(1.0_sp,exflux))*vij2+(1.0_sp+sign(1.0_sp,exflux))*vij1)*0.5_sp
252 
253  !!CALCULATE BOUNDARY FLUX AUGMENTERS
254 
255  isbc_tmp = isbc(i)
256  tpa = float(1-isbc_tmp)*epor(ia)
257  tpb = float(1-isbc_tmp)*epor(ib_tmp)
258 
259  !!ACCUMULATE ADVECTIVE + DIFFUSIVE + BAROTROPIC PRESSURE GRADIENT TERMS
260 ! XFLUX(IA,K)=XFLUX(IA,K)+XADV*TPA+FXX*TPA
261 ! YFLUX(IA,K)=YFLUX(IA,K)+YADV*TPA+FYY*TPA
262 ! XFLUX(IB,K)=XFLUX(IB,K)-XADV*TPB-FXX*TPB
263 ! YFLUX(IB,K)=YFLUX(IB,K)-YADV*TPB-FYY*TPB
264 
265  xflux(ia,k)=xflux(ia,k)+xadv*tpa+(fxx+3.0_sp*fxx*float(isbc_tmp))*epor(ia)
266  yflux(ia,k)=yflux(ia,k)+yadv*tpa+(fyy+3.0_sp*fyy*float(isbc_tmp))*epor(ia)
267  xflux(ib,k)=xflux(ib,k)-xadv*tpb-(fxx+3.0_sp*fxx*float(isbc_tmp))*epor(ib)
268  yflux(ib,k)=yflux(ib,k)-yadv*tpb-(fyy+3.0_sp*fyy*float(isbc_tmp))*epor(ib)
269 ! XFLUX(IA,K)=XFLUX(IA,K)+XADV*TPA+(FXX+3.0_SP*FXX*FLOAT(ISBC(I)))*EPOR(IA)
270 ! YFLUX(IA,K)=YFLUX(IA,K)+YADV*TPA+(FYY+3.0_SP*FYY*FLOAT(ISBC(I)))*EPOR(IA)
271 ! XFLUX(IB,K)=XFLUX(IB,K)-XADV*TPB-(FXX+3.0_SP*FXX*FLOAT(ISBC(I)))*EPOR(IB)
272 ! YFLUX(IB,K)=YFLUX(IB,K)-YADV*TPB-(FYY+3.0_SP*FYY*FLOAT(ISBC(I)))*EPOR(IB)
273 
274  END IF
275 ! for spherical coordinator and domain across 360^o latitude
276 ! PSTX_TM(IA,K)=PSTX_TM(IA,K)-GRAV*DT1(IA)*ELIJ*DLTYC(I)
277 ! PSTY_TM(IA,K)=PSTY_TM(IA,K)+GRAV*DT1(IA)*ELIJ*DLTXC(I)
278 ! PSTX_TM(IB,K)=PSTX_TM(IB,K)+GRAV*DT1(IB)*ELIJ*DLTYC(I)
279 ! PSTY_TM(IB,K)=PSTY_TM(IB,K)-GRAV*DT1(IB)*ELIJ*DLTXC(I)
280  pstx_tm(ia,k)=pstx_tm(ia,k)-grav_e(ia)*dt1(ia)*dz1(ia,k)*elij*dltyc(i)
281  psty_tm(ia,k)=psty_tm(ia,k)+grav_e(ia)*dt1(ia)*dz1(ia,k)*elij*dltxc(i)
282  pstx_tm(ib,k)=pstx_tm(ib,k)+grav_e(ib)*dt1(ib)*dz1(ib,k)*elij*dltyc(i)
283  psty_tm(ib,k)=psty_tm(ib,k)-grav_e(ib)*dt1(ib)*dz1(ib,k)*elij*dltxc(i)
284 
285  END DO
286  END DO
287 
288 
289  DO i=1,n
290  iswettmp = iswetct(i)*iswetc(i)
291  DO k=1,kbm1
292  xflux(i,k) = xflux(i,k)*iswettmp
293  yflux(i,k) = yflux(i,k)*iswettmp
294  pstx_tm(i,k)= pstx_tm(i,k)*iswettmp
295  psty_tm(i,k)= psty_tm(i,k)*iswettmp
296  END DO
297  DO k=1,kbm1
298  xflux(i,k)=xflux(i,k)+pstx_tm(i,k)
299  yflux(i,k)=yflux(i,k)+psty_tm(i,k)
300  END DO
301  END DO
302 
303 !
304 !-------ADD VERTICAL CONVECTIVE FLUX, CORIOLIS TERM AND BAROCLINIC PG TERM----!
305 !
306  DO i=1,n
307  IF(iswetct(i)*iswetc(i) == 1)THEN
308 
309 
310  DO k=1,kbm1
311 
312 
313  IF(k == 1) THEN
314  xfluxv=-w(i,k+1)*(u(i,k)*dz1(i,k+1)+u(i,k+1)*dz1(i,k))/&
315  (dz1(i,k)+dz1(i,k+1))
316  yfluxv=-w(i,k+1)*(v(i,k)*dz1(i,k+1)+v(i,k+1)*dz1(i,k))/&
317  (dz1(i,k)+dz1(i,k+1))
318  ELSE IF(k == kbm1) THEN
319  xfluxv= w(i,k)*(u(i,k)*dz1(i,k-1)+u(i,k-1)*dz1(i,k))/&
320  (dz1(i,k)+dz1(i,k-1))
321  yfluxv= w(i,k)*(v(i,k)*dz1(i,k-1)+v(i,k-1)*dz1(i,k))/&
322  (dz1(i,k)+dz1(i,k-1))
323  ELSE
324  xfluxv= w(i,k)*(u(i,k)*dz1(i,k-1)+u(i,k-1)*dz1(i,k))/&
325  (dz1(i,k)+dz1(i,k-1))-&
326  w(i,k+1)*(u(i,k)*dz1(i,k+1)+u(i,k+1)*dz1(i,k))/&
327  (dz1(i,k)+dz1(i,k+1))
328  yfluxv= w(i,k)*(v(i,k)*dz1(i,k-1)+v(i,k-1)*dz1(i,k))/&
329  (dz1(i,k)+dz1(i,k-1))-&
330  w(i,k+1)*(v(i,k)*dz1(i,k+1)+v(i,k+1)*dz1(i,k))/&
331  (dz1(i,k)+dz1(i,k+1))
332  END IF
333 ! XFLUX(I,K)=XFLUX(I,K)+XFLUXV/DZ(K)*ART(I)&
334 ! +DRHOX(I,K)-COR(I)*V(I,K)*DT1(I)*ART(I)
335 ! YFLUX(I,K)=YFLUX(I,K)+YFLUXV/DZ(K)*ART(I)&
336 ! +DRHOY(I,K)+COR(I)*U(I,K)*DT1(I)*ART(I)
337  xflux(i,k)=xflux(i,k)+xfluxv*art(i)&
338  +drhox(i,k)-cor(i)*v(i,k)*dt1(i)*dz1(i,k)*art(i)
339  yflux(i,k)=yflux(i,k)+yfluxv*art(i)&
340  +drhoy(i,k)+cor(i)*u(i,k)*dt1(i)*dz1(i,k)*art(i)
341 
342 
343 
344  END DO
345  END IF
346  END DO
347 
348 
349  DO i=1,n
350  IF(isbce(i) == 2) THEN
351  DO k=1,kbm1
352  xflux(i,k)=0.0_sp
353  yflux(i,k)=0.0_sp
354  END DO
355  END IF
356  END DO
357 
358  !ADJUST FLUX AT RIVER INFLOWS
359  IF(numqbc >= 1) THEN
360  IF(river_inflow_location == 'node') THEN
361  DO ii=1,numqbc
362  j=inodeq(ii)
363  i1=nbve(j,1)
364  i2=nbve(j,ntve(j))
365  DO k=1,kbm1
366  vlctyq(ii)=qdis(ii)/qarea(ii)
367 ! TEMP=0.5_SP*QDIS(II)*VQDIST(II,K)*VLCTYQ(II)
368  temp=0.5_sp*qdis(ii)*vqdist(ii,k)*vqdist(ii,k)*vlctyq(ii)/dz(j,k)
369 ! XFLUX(I1,K)=XFLUX(I1,K)-TEMP/DZ(J,K)*COS(ANGLEQ(II))
370 ! XFLUX(I2,K)=XFLUX(I2,K)-TEMP/DZ(J,K)*COS(ANGLEQ(II))
371 ! YFLUX(I1,K)=YFLUX(I1,K)-TEMP/DZ(J,K)*SIN(ANGLEQ(II))
372 ! YFLUX(I2,K)=YFLUX(I2,K)-TEMP/DZ(J,K)*SIN(ANGLEQ(II))
373  xflux(i1,k)=xflux(i1,k)-temp*cos(angleq(ii))
374  xflux(i2,k)=xflux(i2,k)-temp*cos(angleq(ii))
375  yflux(i1,k)=yflux(i1,k)-temp*sin(angleq(ii))
376  yflux(i2,k)=yflux(i2,k)-temp*sin(angleq(ii))
377  END DO
378  END DO
379  ELSE IF(river_inflow_location == 'edge') THEN
380  DO ii=1,numqbc
381  i1=icellq(ii)
382  DO k=1,kbm1
383  vlctyq(ii)=qdis(ii)/qarea(ii)
384 ! TEMP=QDIS(II)*VQDIST(II,K)*VLCTYQ(II)
385  temp=qdis(ii)*vqdist(ii,k)*vqdist(ii,k)*vlctyq(ii)/dz1(i1,k)
386 ! XFLUX(I1,K)=XFLUX(I1,K)-TEMP/DZ1(I1,K)*COS(ANGLEQ(II))
387 ! YFLUX(I1,K)=YFLUX(I1,K)-TEMP/DZ1(I1,K)*SIN(ANGLEQ(II))
388  xflux(i1,k)=xflux(i1,k)-temp*cos(angleq(ii))
389  yflux(i1,k)=yflux(i1,k)-temp*sin(angleq(ii))
390  END DO
391  END DO
392  ELSE
393  print*,'RIVER_INFLOW_LOCATION NOT CORRECT'
394  CALL pstop
395  END IF
396  END IF
397 
398  !ADJUST FLUX AT OPEN BOUNDARY MEAN FLOW
399 
400 
401  DO i =1,n
402  DO k=1,kbm1
403 ! UF(I,K)=U(I,K)*DT1(I,K)/D1(I,K)-DTI*XFLUX(I,K)/ART(I)/D1(I,K)
404 ! VF(I,K)=V(I,K)*DT1(I,K)/D1(I,K)-DTI*YFLUX(I,K)/ART(I)/D1(I,K)
405  uf(i,k)=u(i,k)*dt1(i)/d1(i)-dti*xflux(i,k)/art(i)/(d1(i)*dz1(i,k))
406  vf(i,k)=v(i,k)*dt1(i)/d1(i)-dti*yflux(i,k)/art(i)/(d1(i)*dz1(i,k))
407  IF(adcor_on) THEN
408  ubeta(i,k)=xflux(i,k) +cor(i)*v(i,k)*dt1(i)*dz1(i,k)*art(i)*epor(i)
409  vbeta(i,k)=yflux(i,k) -cor(i)*u(i,k)*dt1(i)*dz1(i,k)*art(i)*epor(i)
410  ENDIF
411 
412  END DO
413  END DO
414 
415 
416 
417  DO i =1,n
418  IF(iswetct(i)*iswetc(i) .NE. 1)THEN
419  DO k=1,kbm1
420  uf(i,k)=0.0_sp
421  vf(i,k)=0.0_sp
422  ubeta(i,k)=0.0_sp
423  vbeta(i,k)=0.0_sp
424  END DO
425  END IF
426  END DO
427 
428  DO k=1,kb
429  viscofm(:,k) = viscofm(:,k)/art(:)
430  END DO
431 
432  IF(dbg_set(dbg_sbr)) WRITE(ipt,*) "End: adv_uv_edge_gcn"
433 
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
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
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
Here is the call graph for this function:
Here is the caller graph for this function: