@@ -117,7 +117,6 @@ PURE SUBROUTINE VertexBasisGradient_Quadrangle2_(L1, L2, dL1, dL2, &
117117 ans(1 :dim1, 2 , 2 ) = L1(1 :dim1, 1 ) * dL2(1 :dim1, 0 )
118118 ans(1 :dim1, 3 , 2 ) = L1(1 :dim1, 1 ) * dL2(1 :dim1, 1 )
119119 ans(1 :dim1, 4 , 2 ) = L1(1 :dim1, 0 ) * dL2(1 :dim1, 1 )
120-
121120END SUBROUTINE VertexBasisGradient_Quadrangle2_
122121
123122!- ---------------------------------------------------------------------------
@@ -304,8 +303,8 @@ PURE SUBROUTINE LeftVerticalEdgeBasisGradient_Quadrangle_( &
304303 dim3 = 2
305304
306305 DO CONCURRENT(k2= 2 :order, ii= 1 :dim1)
307- ans(ii, offset + k2 - 1 , 1 ) = (mysign** (k2 - 1 ) ) * dL1(ii, 0 ) * L2(ii, k2)
308- ans(ii, offset + k2 - 1 , 2 ) = (mysign** (k2 - 1 ) ) * L1(ii, 0 ) * dL2(ii, k2)
306+ ans(ii, offset + k2 - 1 , 1 ) = (mysign** k2 ) * dL1(ii, 0 ) * L2(ii, k2)
307+ ans(ii, offset + k2 - 1 , 2 ) = (mysign** k2 ) * L1(ii, 0 ) * dL2(ii, k2)
309308 END DO
310309
311310END SUBROUTINE LeftVerticalEdgeBasisGradient_Quadrangle_
@@ -348,8 +347,8 @@ PURE SUBROUTINE RightVerticalEdgeBasisGradient_Quadrangle_( &
348347
349348 ! Right vertical
350349 DO CONCURRENT(k2= 2 :order, ii= 1 :dim1)
351- ans(ii, offset + k2 - 1 , 1 ) = (mysign** (k2 - 1 ) ) * dL1(ii, 1 ) * L2(ii, k2)
352- ans(ii, offset + k2 - 1 , 2 ) = (mysign** (k2 - 1 ) ) * L1(ii, 1 ) * dL2(ii, k2)
350+ ans(ii, offset + k2 - 1 , 1 ) = (mysign** k2 ) * dL1(ii, 1 ) * L2(ii, k2)
351+ ans(ii, offset + k2 - 1 , 2 ) = (mysign** k2 ) * L1(ii, 1 ) * dL2(ii, k2)
353352 END DO
354353END SUBROUTINE RightVerticalEdgeBasisGradient_Quadrangle_
355354
@@ -497,8 +496,8 @@ PURE SUBROUTINE BottomHorizontalEdgeBasisGradient_Quadrangle_( &
497496
498497 ! ! bottom edge
499498 DO CONCURRENT(k1= 2 :order, ii= 1 :dim1)
500- ans(ii, offset + k1 - 1 , 1 ) = (mysign** (k1 - 1 ) ) * dL1(ii, k1) * L2(ii, 0 )
501- ans(ii, offset + k1 - 1 , 2 ) = (mysign** (k1 - 1 ) ) * L1(ii, k1) * dL2(ii, 0 )
499+ ans(ii, offset + k1 - 1 , 1 ) = (mysign** k1 ) * dL1(ii, k1) * L2(ii, 0 )
500+ ans(ii, offset + k1 - 1 , 2 ) = (mysign** k1 ) * L1(ii, k1) * dL2(ii, 0 )
502501 END DO
503502
504503END SUBROUTINE BottomHorizontalEdgeBasisGradient_Quadrangle_
@@ -537,10 +536,9 @@ PURE SUBROUTINE TopHorizontalEdgeBasisGradient_Quadrangle_( &
537536
538537 ! ! top edge
539538 DO CONCURRENT(k1= 2 :order, ii= 1 :dim1)
540- ans(ii, offset + k1 - 1 , 1 ) = (mysign** (k1 - 1 ) ) * dL1(ii, k1) * L2(ii, 1 )
541- ans(ii, offset + k1 - 1 , 2 ) = (mysign** (k1 - 1 ) ) * L1(ii, k1) * dL2(ii, 1 )
539+ ans(ii, offset + k1 - 1 , 1 ) = (mysign** k1 ) * dL1(ii, k1) * L2(ii, 1 )
540+ ans(ii, offset + k1 - 1 , 2 ) = (mysign** k1 ) * L1(ii, k1) * dL2(ii, 1 )
542541 END DO
543-
544542END SUBROUTINE TopHorizontalEdgeBasisGradient_Quadrangle_
545543
546544!- ---------------------------------------------------------------------------
@@ -601,12 +599,11 @@ PURE SUBROUTINE CellBasis_Quadrangle2_(pb, qb, L1, L2, ans, nrow, ncol, &
601599 o1 = REAL (faceOrient(1 ), kind= DFP)
602600 o2 = REAL (faceOrient(2 ), kind= DFP)
603601
602+ p = pb
603+ q = qb
604604 IF (faceOrient(3 ) .LT. 0_I4B ) THEN
605605 p = qb
606606 q = pb
607- ELSE
608- p = pb
609- q = qb
610607 END IF
611608
612609 DO CONCURRENT(k1= 2 :p, k2= 2 :q, ii= 1 :nrow)
@@ -648,21 +645,20 @@ PURE SUBROUTINE CellBasisGradient_Quadrangle2_( &
648645
649646 o1 = REAL (faceOrient(1 ), kind= DFP)
650647 o2 = REAL (faceOrient(2 ), kind= DFP)
648+ p = pb
649+ q = qb
651650
652651 IF (faceOrient(3 ) .LT. 0_I4B ) THEN
653652 p = qb
654653 q = pb
655- ELSE
656- p = pb
657- q = qb
658654 END IF
659655
660656 DO CONCURRENT(k1= 2 :p, k2= 2 :q, ii= 1 :dim1)
661657 ans(ii, offset + (q - 1 ) * (k1 - 2 ) + k2 - 1 , 1 ) = &
662- (o1** (k1 - 1 ) ) * (o2** k2) * dL1(ii, k1) * L2(ii, k2)
658+ (o1** k1 ) * (o2** k2) * dL1(ii, k1) * L2(ii, k2)
663659
664660 ans(ii, offset + (q - 1 ) * (k1 - 2 ) + k2 - 1 , 2 ) = &
665- (o1** k1) * (o2** (k2 - 1 ) ) * L1(ii, k1) * dL2(ii, k2)
661+ (o1** k1) * (o2** k2 ) * L1(ii, k1) * dL2(ii, k2)
666662 END DO
667663
668664END SUBROUTINE CellBasisGradient_Quadrangle2_
@@ -888,13 +884,15 @@ END SUBROUTINE CellBasisGradient_Quadrangle2_
888884
889885CALL LobattoEvalAll_(n= maxP, x= xij(1 , :), ans= L1, nrow= indx(1 ), ncol= indx(2 ))
890886CALL LobattoEvalAll_(n= maxQ, x= xij(2 , :), ans= L2, nrow= indx(1 ), ncol= indx(2 ))
887+
891888CALL LobattoGradientEvalAll_(n= maxP, x= xij(1 , :), ans= dL1, nrow= indx(1 ), &
892889 ncol= indx(2 ))
893890CALL LobattoGradientEvalAll_(n= maxQ, x= xij(2 , :), ans= dL2, nrow= indx(1 ), &
894891 ncol= indx(2 ))
895892
896- CALL VertexBasisGradient_Quadrangle2_(L1= L1, L2= L2, dL1= dL1, dL2= dL2, &
897- ans= ans, dim1= indx(1 ), dim2= indx(2 ), dim3= indx(3 ))
893+ CALL VertexBasisGradient_Quadrangle2_( &
894+ L1= L1, L2= L2, dL1= dL1, dL2= dL2, ans= ans, dim1= indx(1 ), dim2= indx(2 ), &
895+ dim3= indx(3 ))
898896
899897dim2 = indx(2 )
900898
@@ -908,7 +906,7 @@ END SUBROUTINE CellBasisGradient_Quadrangle2_
908906END IF
909907
910908! Right Vertical Edge basis function
911- isok = (qe1 .GE. 2_I4B )
909+ isok = (qe2 .GE. 2_I4B )
912910IF (isok) THEN
913911 CALL RightVerticalEdgeBasisGradient_Quadrangle_( &
914912 order= qe2, L1= L1, L2= L2, dL1= dL1, dL2= dL2, ans= ans, dim1= indx(1 ), &
@@ -926,11 +924,11 @@ END SUBROUTINE CellBasisGradient_Quadrangle2_
926924END IF
927925
928926! Left Vertical Edge basis function
929- isok = (qe2 .GE. 2_I4B )
927+ isok = (qe1 .GE. 2_I4B )
930928IF (isok) THEN
931929 CALL LeftVerticalEdgeBasisGradient_Quadrangle_( &
932- order= qe2 , L1= L1, L2= L2, dL1= dL1, dL2= dL2, ans= ans, dim1= indx(1 ), &
933- dim2= indx(2 ), dim3= indx(3 ), orient= qe2Orient , offset= dim2)
930+ order= qe1 , L1= L1, L2= L2, dL1= dL1, dL2= dL2, ans= ans, dim1= indx(1 ), &
931+ dim2= indx(2 ), dim3= indx(3 ), orient= qe1Orient , offset= dim2)
934932 dim2 = dim2 + indx(2 )
935933END IF
936934
@@ -948,4 +946,8 @@ END SUBROUTINE CellBasisGradient_Quadrangle2_
948946DEALLOCATE (L1, L2, dL1, dL2)
949947END PROCEDURE HeirarchicalBasisGradient_Quadrangle3_
950948
949+ !- ---------------------------------------------------------------------------
950+ !
951+ !- ---------------------------------------------------------------------------
952+
951953END SUBMODULE HierarchicalMethods
0 commit comments