/home/eoseret/qaas_runs_CPU_9468/171-152-3172/intel/CloverLeafFC/build/CloverLeafFC/CloverLeaf_ref/kernels/advec_mom_kernel.f90: 79 - 248
--------------------------------------------------------------------------------

79:     !$OMP PARALLEL
80: 
81:     IF(mom_sweep.EQ.1)THEN ! x 1
82:       !$OMP DO
83:       DO k=y_min-2,y_max+2
84:       !$OMP SIMD
85:         DO j=x_min-2,x_max+2
86:           post_vol(j,k)= volume(j,k)+vol_flux_y(j  ,k+1)-vol_flux_y(j,k)
87:           pre_vol(j,k)=post_vol(j,k)+vol_flux_x(j+1,k  )-vol_flux_x(j,k)
88:         ENDDO
89:       ENDDO
90:     !$OMP END DO
91:     ELSEIF(mom_sweep.EQ.2)THEN ! y 1
92:       !$OMP DO
93:       DO k=y_min-2,y_max+2
94:       !$OMP SIMD
95:         DO j=x_min-2,x_max+2
96:           post_vol(j,k)= volume(j,k)+vol_flux_x(j+1,k  )-vol_flux_x(j,k)
97:           pre_vol(j,k)=post_vol(j,k)+vol_flux_y(j  ,k+1)-vol_flux_y(j,k)
98:         ENDDO
99:       ENDDO
100:     !$OMP END DO
101:     ELSEIF(mom_sweep.EQ.3)THEN ! x 2
102:       !$OMP DO
103:       DO k=y_min-2,y_max+2
104:       !$OMP SIMD
105:         DO j=x_min-2,x_max+2
106:           post_vol(j,k)=volume(j,k)
107:           pre_vol(j,k)=post_vol(j,k)+vol_flux_y(j  ,k+1)-vol_flux_y(j,k)
108:         ENDDO
109:       ENDDO
110:     !$OMP END DO
111:     ELSEIF(mom_sweep.EQ.4)THEN ! y 2
112:       !$OMP DO
113:       DO k=y_min-2,y_max+2
114:       !$OMP SIMD
115:         DO j=x_min-2,x_max+2
116:           post_vol(j,k)=volume(j,k)
117:           pre_vol(j,k)=post_vol(j,k)+vol_flux_x(j+1,k  )-vol_flux_x(j,k)
[...]
123:     IF(direction.EQ.1)THEN
124:       IF(which_vel.EQ.1)THEN
125:         !$OMP DO
126:         DO k=y_min,y_max+1
127:         !$OMP SIMD
128:           DO j=x_min-2,x_max+2
129:             ! Find staggered mesh mass fluxes, nodal masses and volumes.
130:             node_flux(j,k)=0.25_8*(mass_flux_x(j,k-1  )+mass_flux_x(j  ,k)  &
131:               +mass_flux_x(j+1,k-1)+mass_flux_x(j+1,k))
132:           ENDDO
133:         ENDDO
134:         !$OMP END DO
135:         !$OMP DO
136:         DO k=y_min,y_max+1
137:         !$OMP SIMD
[...]
143:               +density1(j-1,k  )*post_vol(j-1,k  ))
144:             node_mass_pre(j,k)=node_mass_post(j,k)-node_flux(j-1,k)+node_flux(j,k)
145:           ENDDO
146:         ENDDO
147:       ENDIF
148: 
149:       !$OMP DO PRIVATE(upwind,downwind,donor,dif,sigma,width,limiter,vdiffuw,vdiffdw,auw,adw,wind,advec_vel_s)
150:       DO k=y_min,y_max+1
151:         DO j=x_min-1,x_max+1
152:           IF(node_flux(j,k).LT.0.0)THEN
153:             upwind=j+2
154:             donor=j+1
155:             downwind=j
156:             dif=donor
157:           ELSE
158:             upwind=j-1
159:             donor=j
160:             downwind=j+1
161:             dif=upwind
162:           ENDIF
163:           sigma=ABS(node_flux(j,k))/(node_mass_pre(donor,k))
164:           width=celldx(j)
165:           vdiffuw=vel1(donor,k)-vel1(upwind,k)
166:           vdiffdw=vel1(downwind,k)-vel1(donor,k)
167:           limiter=0.0
168:           IF(vdiffuw*vdiffdw.GT.0.0)THEN
169:             auw=ABS(vdiffuw)
170:             adw=ABS(vdiffdw)
171:             wind=1.0_8
172:             IF(vdiffdw.LE.0.0) wind=-1.0_8
173:             limiter=wind*MIN(width*((2.0_8-sigma)*adw/width+(1.0_8+sigma)*auw/celldx(dif))/6.0_8,auw,adw)
174:           ENDIF
175:           advec_vel_s=vel1(donor,k)+(1.0-sigma)*limiter
176:           mom_flux(j,k)=advec_vel_s*node_flux(j,k)
177:         ENDDO
178:       ENDDO
179:       !$OMP END DO
180:       !$OMP DO
181:       DO k=y_min,y_max+1
182:       !$OMP SIMD
183:         DO j=x_min,x_max+1
184:           vel1 (j,k)=(vel1 (j,k)*node_mass_pre(j,k)+mom_flux(j-1,k)-mom_flux(j,k))/node_mass_post(j,k)
185:         ENDDO
186:       ENDDO
187:     !$OMP END DO
188:     ELSEIF(direction.EQ.2)THEN
189:       IF(which_vel.EQ.1)THEN
190:         !$OMP DO
191:         DO k=y_min-2,y_max+2
192:         !$OMP SIMD
193:           DO j=x_min,x_max+1
194:             ! Find staggered mesh mass fluxes and nodal masses and volumes.
195:             node_flux(j,k)=0.25_8*(mass_flux_y(j-1,k  )+mass_flux_y(j  ,k  ) &
196:               +mass_flux_y(j-1,k+1)+mass_flux_y(j  ,k+1))
197:           ENDDO
198:         ENDDO
199:         !$OMP END DO
200:         !$OMP DO
201:         DO k=y_min-1,y_max+2
202:         !$OMP SIMD
203:           DO j=x_min,x_max+1
204:             node_mass_post(j,k)=0.25_8*(density1(j  ,k-1)*post_vol(j  ,k-1)                     &
205:               +density1(j  ,k  )*post_vol(j  ,k  )                     &
206:               +density1(j-1,k-1)*post_vol(j-1,k-1)                     &
207:               +density1(j-1,k  )*post_vol(j-1,k  ))
208:             node_mass_pre(j,k)=node_mass_post(j,k)-node_flux(j,k-1)+node_flux(j,k)
209:           ENDDO
210:         ENDDO
211:       ENDIF
212:       !$OMP DO PRIVATE(upwind,donor,downwind,dif,sigma,width,limiter,vdiffuw,vdiffdw,auw,adw,wind,advec_vel_s)
213:       DO k=y_min-1,y_max+1
214:         DO j=x_min,x_max+1
215:           IF(node_flux(j,k).LT.0.0)THEN
216:             upwind=k+2
217:             donor=k+1
218:             downwind=k
219:             dif=donor
220:           ELSE
221:             upwind=k-1
[...]
227:           sigma=ABS(node_flux(j,k))/(node_mass_pre(j,donor))
228:           width=celldy(k)
229:           vdiffuw=vel1(j,donor)-vel1(j,upwind)
230:           vdiffdw=vel1(j,downwind)-vel1(j,donor)
231:           limiter=0.0
232:           IF(vdiffuw*vdiffdw.GT.0.0)THEN
233:             auw=ABS(vdiffuw)
234:             adw=ABS(vdiffdw)
235:             wind=1.0_8
236:             IF(vdiffdw.LE.0.0) wind=-1.0_8
237:             limiter=wind*MIN(width*((2.0_8-sigma)*adw/width+(1.0_8+sigma)*auw/celldy(dif))/6.0_8,auw,adw)
238:           ENDIF
239:           advec_vel_s=vel1(j,donor)+(1.0_8-sigma)*limiter
240:           mom_flux(j,k)=advec_vel_s*node_flux(j,k)
241:         ENDDO
242:       ENDDO
243:       !$OMP END DO
244:       !$OMP DO
245:       DO k=y_min,y_max+1
246:       !$OMP SIMD
247:         DO j=x_min,x_max+1
248:           vel1 (j,k)=(vel1(j,k)*node_mass_pre(j,k)+mom_flux(j,k-1)-mom_flux(j,k))/node_mass_post(j,k)
