65 CHARACTER(CHRLEN) :: RCSIdentString = &
66 '$RCSfile: RFLU_ModDifferentiationBFaces.F90,v $ $Revision: 1.6 $'
103 ibeggrad,iendgrad,var,grad)
118 INTEGER,
INTENT(IN) :: ibegvar,iendvar,ibeggrad,iendgrad
119 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: var
120 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad
121 TYPE(t_patch),
POINTER :: ppatch
122 TYPE(t_region
),
POINTER :: pregion
128 LOGICAL :: fndirflag,ifgincludeflag
129 INTEGER :: errorflag,fndir,icg,ifg,igrad,isl,ivar,nmembsmax,nmembs,
order
130 REAL(RFREAL),
DIMENSION(:),
ALLOCATABLE :: locs,wts
132 TYPE(t_grid),
POINTER :: pgrid
138 global => pregion%global
141 'RFLU_ModDifferentiationBFaces.F90' )
144 CALL fprofiler_begins(
"RFLU::ComputeGradBFaces_1D")
147 IF ( (iendvar - ibegvar) /= (iendgrad - ibeggrad) )
THEN
148 CALL
errorstop(global,err_grad_mismatch,__line__)
151 pgrid => pregion%grid
157 IF ( ppatch%bcType /= bc_virtual )
THEN
158 nmembsmax = ppatch%bf2cs1DInfo%nCellMembsMax
161 ifgincludeflag = .false.
167 IF ( ppatch%flatFlag .EQV. .false. )
THEN
168 CALL
errorstop(global,err_patch_not_flat,__line__)
172 IF ( fndirflag .EQV. .false. )
THEN
173 CALL
errorstop(global,err_patch_not_aligned,__line__)
181 ALLOCATE(wts(0:nmembsmax),stat=errorflag)
182 global%error = errorflag
183 IF ( global%error /= err_none )
THEN
184 CALL
errorstop(global,err_allocate,__line__,
'wts')
187 ALLOCATE(locs(0:nmembsmax),stat=errorflag)
188 global%error = errorflag
189 IF ( global%error /= err_none )
THEN
190 CALL
errorstop(global,err_allocate,__line__,
'locs')
201 IF ( ifgincludeflag .EQV. .true. )
THEN
202 DO ifg = 1,ppatch%nBFaces
203 DO igrad = ibeggrad,iendgrad
204 grad(xcoord,igrad,ifg) = 0.0_rfreal
205 grad(ycoord,igrad,ifg) = 0.0_rfreal
206 grad(zcoord,igrad,ifg) = 0.0_rfreal
209 nmembs = ppatch%bf2cs1D(ifg)%nCellMembs
211 locs(0) = ppatch%fc(fndir,ifg)
214 icg = ppatch%bf2cs1D(ifg)%cellMembs(isl)
216 locs(isl) = pgrid%cofg(fndir,icg)
220 ppatch%fc(fndir,ifg),wts(0:nmembs))
224 DO ivar = ibegvar,iendvar
233 icg = ppatch%bf2cs1D(ifg)%cellMembs(isl)
235 grad(fndir,igrad,ifg) = grad(fndir,igrad,ifg) &
236 + wts(isl)*var(ivar,icg)
248 DO ifg = 1,ppatch%nBFaces
249 DO igrad = ibeggrad,iendgrad
250 grad(xcoord,igrad,ifg) = 0.0_rfreal
251 grad(ycoord,igrad,ifg) = 0.0_rfreal
252 grad(zcoord,igrad,ifg) = 0.0_rfreal
255 nmembs = ppatch%bf2cs1D(ifg)%nCellMembs
258 icg = ppatch%bf2cs1D(ifg)%cellMembs(isl)
260 locs(isl) = pgrid%cofg(fndir,icg)
264 ppatch%fc(fndir,ifg),wts(1:nmembs))
268 DO ivar = ibegvar,iendvar
270 icg = ppatch%bf2cs1D(ifg)%cellMembs(isl)
272 grad(fndir,igrad,ifg) = grad(fndir,igrad,ifg) &
273 + wts(isl)*var(ivar,icg)
285 DEALLOCATE(wts,stat=errorflag)
286 global%error = errorflag
287 IF ( global%error /= err_none )
THEN
288 CALL
errorstop(global,err_deallocate,__line__,
'wts')
291 DEALLOCATE(locs,stat=errorflag)
292 global%error = errorflag
293 IF ( global%error /= err_none )
THEN
294 CALL
errorstop(global,err_deallocate,__line__,
'locs')
303 CALL fprofiler_ends(
"RFLU::ComputeGradBFaces_1D")
358 INTEGER,
INTENT(IN) :: ibegvar,iendvar,ibeggrad,iendgrad
359 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: var
360 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad
361 TYPE(t_patch),
POINTER :: ppatch
362 TYPE(t_region
),
POINTER :: pregion
368 INTEGER :: errorflag,icg,ifg,ifgbeg,ifgend,ifl,igrad,isl,ivar
369 REAL(RFREAL) :: c11,c12,c13,c14,c22,c23,c24,c33,c34,c44,
dx,
dy,
dz,r11, &
370 r12,r13,r14,r22,r23,r24,r33,r34,r44,
term,term1,term2, &
372 REAL(RFREAL) :: fc(xcoord:zcoord)
374 TYPE(t_grid),
POINTER :: pgrid
380 global => pregion%global
383 'RFLU_ModDifferentiationBFaces.F90' )
385 IF ( (iendvar - ibegvar) /= (iendgrad - ibeggrad) )
THEN
386 CALL
errorstop(global,err_grad_mismatch,__line__)
393 pgrid => pregion%grid
399 IF ( ppatch%bcType /= bc_virtual )
THEN
422 SELECT CASE ( pregion%mixtInput%dimens )
428 DO ifl = 1,ppatch%nBFaces
429 r11 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_11)
430 r12 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_12)
431 r22 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_22)
432 r13 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_13)
433 r23 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_23)
434 r33 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_33)
441 c13 = -(c11*r13 + c12*c22*r23)
445 fc(xcoord) = ppatch%fc(xcoord,ifl)
446 fc(ycoord) = ppatch%fc(ycoord,ifl)
448 DO igrad = ibeggrad,iendgrad
449 grad(xcoord,igrad,ifl) = 0.0_rfreal
450 grad(ycoord,igrad,ifl) = 0.0_rfreal
451 grad(zcoord,igrad,ifl) = 0.0_rfreal
454 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
455 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
457 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
458 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
465 term1 = c11*c11*(
dx)
466 term2 = c22*c22*(
dy + c12*
dx)
467 term3 = c33*c33*(
term + c23*
dy + c13*
dx)
470 wx =
term*(term1 + c12*term2 + c13*term3)
471 wy =
term*( term2 + c23*term3)
479 DO ivar = ibegvar,iendvar
481 grad(xcoord,igrad,ifl) = grad(xcoord,igrad,ifl) + wx*var(ivar,icg)
482 grad(ycoord,igrad,ifl) = grad(ycoord,igrad,ifl) + wy*var(ivar,icg)
498 DO ifl = 1,ppatch%nBFaces
500 r11 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_11)
501 r12 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_12)
502 r22 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_22)
503 r13 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_13)
504 r23 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_23)
505 r33 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_33)
506 r14 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_14)
507 r24 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_24)
508 r34 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_34)
509 r44 = ppatch%bf2cs(ifl)%xyzMoms(xyz_mom_44)
517 c13 = -(c11*r13 + c12*c22*r23)
518 c14 = -(c11*r14 + c12*c22*r24 + c13*c33*r34)
521 c24 = -(c22*r24 + c23*c33*r34)
525 fc(xcoord) = ppatch%fc(xcoord,ifl)
526 fc(ycoord) = ppatch%fc(ycoord,ifl)
527 fc(zcoord) = ppatch%fc(zcoord,ifl)
529 DO igrad = ibeggrad,iendgrad
530 grad(xcoord,igrad,ifl) = 0.0_rfreal
531 grad(ycoord,igrad,ifl) = 0.0_rfreal
532 grad(zcoord,igrad,ifl) = 0.0_rfreal
535 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
536 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
538 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
539 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
540 dz = pgrid%cofg(zcoord,icg) - fc(zcoord)
548 term1 = c11*c11*(
dx)
549 term2 = c22*c22*(
dy + c12*
dx)
550 term3 = c33*c33*(
dz + c23*
dy + c13*
dx)
551 term4 = c44*c44*(
term + c34*
dz + c24*
dy + c14*
dx)
553 wx =
term*(term1 + c12*term2 + c13*term3 + c14*term4)
554 wy =
term*( term2 + c23*term3 + c24*term4)
555 wz =
term*( term3 + c34*term4)
559 DO ivar = ibegvar,iendvar
560 grad(xcoord,igrad,ifl) = grad(xcoord,igrad,ifl) + wx*var(ivar,icg)
561 grad(ycoord,igrad,ifl) = grad(ycoord,igrad,ifl) + wy*var(ivar,icg)
562 grad(zcoord,igrad,ifl) = grad(zcoord,igrad,ifl) + wz*var(ivar,icg)
573 CALL
errorstop(global,err_reached_default,__line__)
638 iendgrad,varinfo,var,grad)
652 INTEGER,
INTENT(IN) :: ibegvar,iendvar,ibeggrad,iendgrad
653 INTEGER,
INTENT(IN) :: varinfo(ibegvar:iendvar)
654 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: var
655 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad
656 TYPE(t_patch),
POINTER :: ppatch
657 TYPE(t_region
),
POINTER :: pregion
663 INTEGER :: errorflag,icg,icol,ifg,ifgbeg,ifgend,ifl,ifl2,igrad, &
664 ipatch2,irow,isl,ivar,ix,iy,iz,ncols,nconstr,nrows,scount
665 INTEGER,
DIMENSION(:),
ALLOCATABLE :: constrtype
666 REAL(RFREAL) :: c11,c12,c13,c14,c22,c23,c24,c33,c34,c44,
dx,
dy,
dz,gx,gy, &
667 gz,r11,r12,r13,r14,r22,r23,r24,r33,r34,r44,
term,term1, &
668 term2,term3,term4,varf,varc
669 REAL(RFREAL) :: colmax(4)
670 REAL(RFREAL) :: fc(xcoord:zcoord)
671 REAL(RFREAL),
DIMENSION(:,:),
ALLOCATABLE ::
a,
ainv
673 TYPE(t_grid),
POINTER :: pgrid
674 TYPE(t_patch),
POINTER :: ppatch2
680 global => pregion%global
683 'RFLU_ModDifferentiationBFaces.F90' )
685 IF ( (iendvar - ibegvar) /= (iendgrad - ibeggrad) )
THEN
686 CALL
errorstop(global,err_grad_mismatch,__line__)
693 pgrid => pregion%grid
699 IF ( ppatch%bcType /= bc_virtual )
THEN
717 DO ifl = 1,ppatch%nBFaces
723 DO igrad = ibeggrad,iendgrad
724 grad(xcoord,igrad,ifl) = 0.0_rfreal
725 grad(ycoord,igrad,ifl) = 0.0_rfreal
726 grad(zcoord,igrad,ifl) = 0.0_rfreal
729 fc(xcoord) = ppatch%fc(xcoord,ifl)
730 fc(ycoord) = ppatch%fc(ycoord,ifl)
731 fc(zcoord) = ppatch%fc(zcoord,ifl)
733 ALLOCATE(constrtype(0:ppatch%bf2cs(ifl)%nBFaceMembs),stat=errorflag)
734 global%error = errorflag
735 IF ( global%error /= err_none )
THEN
736 CALL
errorstop(global,err_allocate,__line__,
'constrType')
745 DO ivar = ibegvar,iendvar
751 IF ( constrtype(0) /= constr_type_dirichlet )
THEN
752 constrtype(0) = constr_type_none
763 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
764 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
765 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
767 ppatch2 => pregion%patches(ipatch2)
772 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
773 nconstr = nconstr + 1
775 constrtype(isl) = constr_type_none
787 IF ( (constrtype(0) == constr_type_dirichlet) .OR. (nconstr > 0) )
THEN
791 nrows = ppatch%bf2cs(ifl)%nCellMembs + nconstr
793 SELECT CASE ( constrtype(0) )
794 CASE ( constr_type_dirichlet )
795 ncols = pregion%mixtInput%dimens
796 CASE ( constr_type_none )
797 ncols = pregion%mixtInput%dimens + 1
799 CALL
errorstop(global,err_reached_default,__line__)
802 ALLOCATE(
a(nrows,ncols),stat=errorflag)
803 global%error = errorflag
804 IF ( global%error /= err_none )
THEN
805 CALL
errorstop(global,err_allocate,__line__,
'a')
808 ALLOCATE(
ainv(ncols,nrows),stat=errorflag)
809 global%error = errorflag
810 IF ( global%error /= err_none )
THEN
811 CALL
errorstop(global,err_allocate,__line__,
'aInv')
816 SELECT CASE ( pregion%mixtInput%dimens )
818 SELECT CASE ( constrtype(0) )
819 CASE ( constr_type_dirichlet )
820 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
821 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
823 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
824 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
832 irow = ppatch%bf2cs(ifl)%nCellMembs
834 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
835 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
836 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
837 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
839 ppatch2 => pregion%patches(ipatch2)
841 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
842 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
852 CASE ( constr_type_none )
853 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
854 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
856 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
857 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
866 irow = ppatch%bf2cs(ifl)%nCellMembs
868 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
869 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
870 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
871 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
873 ppatch2 => pregion%patches(ipatch2)
875 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
876 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
888 CALL
errorstop(global,err_reached_default,__line__)
891 SELECT CASE ( constrtype(0) )
892 CASE ( constr_type_dirichlet )
893 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
894 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
896 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
897 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
898 dz = pgrid%cofg(zcoord,icg) - fc(zcoord)
907 irow = ppatch%bf2cs(ifl)%nCellMembs
909 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
910 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
911 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
912 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
914 ppatch2 => pregion%patches(ipatch2)
916 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
917 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
918 dz = ppatch2%fc(zcoord,ifl2) - fc(zcoord)
929 CASE ( constr_type_none )
930 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
931 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
933 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
934 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
935 dz = pgrid%cofg(zcoord,icg) - fc(zcoord)
945 irow = ppatch%bf2cs(ifl)%nCellMembs
947 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
948 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
949 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
950 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
952 ppatch2 => pregion%patches(ipatch2)
954 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
955 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
956 dz = ppatch2%fc(zcoord,ifl2) - fc(zcoord)
969 CALL
errorstop(global,err_reached_default,__line__)
972 CALL
errorstop(global,err_reached_default,__line__)
978 colmax(icol) = -huge(1.0_rfreal)
981 colmax(icol) =
max(colmax(icol),abs(
a(irow,icol)))
985 a(irow,icol) =
a(irow,icol)/colmax(icol)
993 ainv(icol,irow) =
ainv(icol,irow)/colmax(icol)
998 IF ( scount /= 0 )
THEN
999 WRITE(*,*)
'ERROR - Singular matrix in RFLU_ComputeGradBFacesConstr!'
1006 SELECT CASE ( pregion%mixtInput%dimens )
1011 SELECT CASE ( constrtype(0) )
1012 CASE ( constr_type_dirichlet )
1015 CASE ( constr_type_none )
1019 CALL
errorstop(global,err_reached_default,__line__)
1022 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
1023 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
1025 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
1026 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
1030 gx = gx +
term*
ainv(ix,isl)*(var(ivar,icg) - varf)
1031 gy = gy +
term*
ainv(iy,isl)*(var(ivar,icg) - varf)
1034 irow = ppatch%bf2cs(ifl)%nCellMembs
1036 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
1037 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
1038 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
1039 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
1041 ppatch2 => pregion%patches(ipatch2)
1043 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
1044 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
1052 gx = gx +
term*
ainv(ix,irow)*(varc - varf)
1053 gy = gy +
term*
ainv(iy,irow)*(varc - varf)
1057 grad(xcoord,igrad,ifl) = gx
1058 grad(ycoord,igrad,ifl) = gy
1059 grad(zcoord,igrad,ifl) = 0.0_rfreal
1066 SELECT CASE ( constrtype(0) )
1067 CASE ( constr_type_dirichlet )
1071 CASE ( constr_type_none )
1076 CALL
errorstop(global,err_reached_default,__line__)
1079 DO isl = 1,ppatch%bf2cs(ifl)%nCellMembs
1080 icg = ppatch%bf2cs(ifl)%cellMembs(isl)
1082 dx = pgrid%cofg(xcoord,icg) - fc(xcoord)
1083 dy = pgrid%cofg(ycoord,icg) - fc(ycoord)
1084 dz = pgrid%cofg(zcoord,icg) - fc(zcoord)
1088 gx = gx +
term*
ainv(ix,isl)*(var(ivar,icg) - varf)
1089 gy = gy +
term*
ainv(iy,isl)*(var(ivar,icg) - varf)
1090 gz = gz +
term*
ainv(iz,isl)*(var(ivar,icg) - varf)
1093 irow = ppatch%bf2cs(ifl)%nCellMembs
1095 DO isl = 1,ppatch%bf2cs(ifl)%nBFaceMembs
1096 IF ( constrtype(isl) == constr_type_dirichlet )
THEN
1097 ipatch2 = ppatch%bf2cs(ifl)%bFaceMembs(1,isl)
1098 ifl2 = ppatch%bf2cs(ifl)%bFaceMembs(2,isl)
1100 ppatch2 => pregion%patches(ipatch2)
1102 dx = ppatch2%fc(xcoord,ifl2) - fc(xcoord)
1103 dy = ppatch2%fc(ycoord,ifl2) - fc(ycoord)
1104 dz = ppatch2%fc(zcoord,ifl2) - fc(zcoord)
1112 gx = gx +
term*
ainv(ix,irow)*(varc - varf)
1113 gy = gy +
term*
ainv(iy,irow)*(varc - varf)
1114 gz = gz +
term*
ainv(iz,irow)*(varc - varf)
1118 grad(xcoord,igrad,ifl) = gx
1119 grad(ycoord,igrad,ifl) = gy
1120 grad(zcoord,igrad,ifl) = gz
1122 CALL
errorstop(global,err_reached_default,__line__)
1127 DEALLOCATE(
a,stat=errorflag)
1128 global%error = errorflag
1129 IF ( global%error /= err_none )
THEN
1130 CALL
errorstop(global,err_deallocate,__line__,
'a')
1133 DEALLOCATE(
ainv,stat=errorflag)
1134 global%error = errorflag
1135 IF ( global%error /= err_none )
THEN
1136 CALL
errorstop(global,err_deallocate,__line__,
'aInv')
1143 DEALLOCATE(constrtype,stat=errorflag)
1144 global%error = errorflag
1145 IF ( global%error /= err_none )
THEN
1146 CALL
errorstop(global,err_deallocate,__line__,
'constrType')
1200 ibeggrad,iendgrad,varinfo,var,grad)
1212 INTEGER,
INTENT(IN) :: ibegvar,iendvar,ibeggrad,iendgrad
1213 INTEGER,
INTENT(IN) :: varinfo(ibegvar:iendvar)
1214 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: var
1215 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad
1216 TYPE(t_patch),
POINTER :: ppatch
1217 TYPE(t_region
),
POINTER :: pregion
1224 TYPE(t_grid),
POINTER :: pgrid
1230 global => pregion%global
1233 'RFLU_ModDifferentiationBFaces.F90' )
1239 SELECT CASE ( pregion%mixtInput%stencilDimensBFaces )
1245 ibeggrad,iendgrad,varinfo,var,grad)
1247 CALL
errorstop(global,err_reached_default,__line__)
1286 ibeggrad,iendgrad,var,grad)
1298 INTEGER,
INTENT(IN) :: ibegvar,iendvar,ibeggrad,iendgrad
1299 REAL(RFREAL),
DIMENSION(:,:),
POINTER :: var
1300 REAL(RFREAL),
DIMENSION(:,:,:),
POINTER :: grad
1301 TYPE(t_patch),
POINTER :: ppatch
1302 TYPE(t_region
),
POINTER :: pregion
1309 TYPE(t_grid),
POINTER :: pgrid
1315 global => pregion%global
1318 'RFLU_ModDifferentiationBFaces.F90' )
1324 SELECT CASE ( pregion%mixtInput%stencilDimensBFaces )
1327 ibeggrad,iendgrad,var,grad)
1332 CALL
errorstop(global,err_reached_default,__line__)
subroutine, public rflu_computewtsx2c_1d(global, m, nMembs, x, z, w)
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
subroutine ainv(ajac, ajacin, det, ndim)
Size order() const
Degree of the element. 1 for linear and 2 for quadratic.
subroutine rflu_invertmatrixsvd(global, nRows, nCols, a, aInv, sCount)
subroutine, public rflu_computebfgradconstrwrapper(pRegion, pPatch, iBegVar, iEndVar, iBegGrad, iEndGrad, varInfo, var, grad)
subroutine registerfunction(global, funName, fileName)
subroutine, public rflu_getpatchnormaldirection(global, pPatch, pnDir, pnDirFlag)
subroutine rflu_computebfgradconstr(pRegion, pPatch, iBegVar, iEndVar, iBegGrad, iEndGrad, varInfo, var, grad)
subroutine, public rflu_computegradbfaces(pRegion, pPatch, iBegVar, iEndVar, iBegGrad, iEndGrad, var, grad)
subroutine, public rflu_computegradbfaceswrapper(pRegion, pPatch, iBegVar, iEndVar, iBegGrad, iEndGrad, var, grad)
INTEGER function, public rflu_getconstrtype(pRegion, pPatch, var, ifl)
subroutine, public rflu_computegradbfaces_1d(pRegion, pPatch, iBegVar, iEndVar, iBegGrad, iEndGrad, var, grad)
real(rfreal) function, public rflu_getconstrvalue(pRegion, pPatch, var, ifl)
subroutine errorstop(global, errorCode, errorLine, addMessage)
subroutine deregisterfunction(global)