Skip to content

Commit

Permalink
comment out forall which are obscolecent in f2018 and replace with a …
Browse files Browse the repository at this point in the history
…horrible do
  • Loading branch information
JorgeG94 committed Jan 16, 2025
1 parent 8675bbc commit 22e52a2
Show file tree
Hide file tree
Showing 5 changed files with 64 additions and 13 deletions.
9 changes: 7 additions & 2 deletions src/libasabqarray.f90
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,13 @@ function asabqarray_4s(T, i, j)

imap = (/1, 2, 3, 4, 6, 5/)

forall (i1=1:i, j1=1:j) asabqarray_4s(i1, j1) = &
T%a6b6(imap(i1), imap(j1))
! forall (i1=1:i, j1=1:j) asabqarray_4s(i1, j1) = &
! T%a6b6(imap(i1), imap(j1))
do i1 = 1, i
do j1 = 1, j
asabqarray_4s(i1, j1) = T%a6b6(imap(i1), imap(j1))
end do
end do

end function asabqarray_4s
end module ttb_asabqarray
18 changes: 15 additions & 3 deletions src/libcrossdyadic.f90
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,21 @@ function crossdyadic_22(T1, T2)
type(Tensor4) :: crossdyadic_22
integer i, j, k, l

forall (i=1:3, j=1:3, k=1:3, l=1:3) crossdyadic_22%abcd(i, j, k, l) &
= (T1%ab(i, k)*T2%ab(j, l) + T1%ab(i, l)*T2%ab(j, k) + &
T2%ab(i, k)*T1%ab(j, l) + T2%ab(i, l)*T1%ab(j, k))/4.d0
! forall (i=1:3, j=1:3, k=1:3, l=1:3) crossdyadic_22%abcd(i, j, k, l) &
! = (T1%ab(i, k)*T2%ab(j, l) + T1%ab(i, l)*T2%ab(j, k) + &
! T2%ab(i, k)*T1%ab(j, l) + T2%ab(i, l)*T1%ab(j, k))/4.d0

do i = 1, 3
do j = 1, 3
do k = 1, 3
do l = 1, 3
crossdyadic_22%abcd(i, j, k, l) = &
(T1%ab(i, k)*T2%ab(j, l) + T1%ab(i, l)*T2%ab(j, k) + &
T2%ab(i, k)*T1%ab(j, l) + T2%ab(i, l)*T1%ab(j, k))/4.d0
end do
end do
end do
end do

end function crossdyadic_22

Expand Down
20 changes: 17 additions & 3 deletions src/libdyadic.f90
Original file line number Diff line number Diff line change
Expand Up @@ -25,8 +25,17 @@ function dyadic_22(T1, T2)
type(Tensor4) :: dyadic_22
integer i, j, k, l

forall (i=1:3, j=1:3, k=1:3, l=1:3) dyadic_22%abcd(i, j, k, l) &
= T1%ab(i, j)*T2%ab(k, l)
! forall (i=1:3, j=1:3, k=1:3, l=1:3) dyadic_22%abcd(i, j, k, l) &
! = T1%ab(i, j)*T2%ab(k, l)
do i = 1, 3
do j = 1, 3
do k = 1, 3
do l = 1, 3
dyadic_22%abcd(i, j, k, l) = T1%ab(i, j)*T2%ab(k, l)
end do
end do
end do
end do

end function dyadic_22

Expand All @@ -37,7 +46,12 @@ function dyadic_2s2s(T1, T2)
type(Tensor4s) :: dyadic_2s2s
integer i, j

forall (i=1:6, j=1:6) dyadic_2s2s%a6b6(i, j) = T1%a6(i)*T2%a6(j)
!forall (i=1:6, j=1:6) dyadic_2s2s%a6b6(i, j) = T1%a6(i)*T2%a6(j)
do i=1,6
do j=1,6
dyadic_2s2s%a6b6(i, j) = T1%a6(i)*T2%a6(j)
end do
end do

end function dyadic_2s2s
end module ttb_dya
16 changes: 13 additions & 3 deletions src/libtenstore.f90
Original file line number Diff line number Diff line change
Expand Up @@ -87,9 +87,19 @@ function tenstore_4s(T)
integer, dimension(3, 3) :: i6j6

i6j6 = reshape((/1, 4, 6, 4, 2, 5, 6, 5, 3/), (/3, 3/))

forall (i=1:3, j=1:3, k=1:3, l=1:3) tenstore_4s%abcd(i, j, k, l) &
= T%a6b6(i6j6(i, j), i6j6(k, l))
! could be replaced with a do concurrent?
do i = 1, 3
do j = 1, 3
do k = 1, 3
do l = 1, 3
tenstore_4s%abcd(i, j, k, l) = T%a6b6(i6j6(i, j), i6j6(k, l))
end do
end do
end do
end do

! forall (i=1:3, j=1:3, k=1:3, l=1:3) tenstore_4s%abcd(i, j, k, l) &
! = T%a6b6(i6j6(i, j), i6j6(k, l))

end function tenstore_4s
end module ttb_tensorstore
14 changes: 12 additions & 2 deletions src/libtransp.f90
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,18 @@ function transp4(T)
integer :: i, j, k, l

transp4%abcd = 0.d0
forall (i=1:3, j=1:3, k=1:3, l=1:3) transp4%abcd(i, j, k, l) &
= T%abcd(k, l, i, j)
! forall (i=1:3, j=1:3, k=1:3, l=1:3) transp4%abcd(i, j, k, l) &
! = T%abcd(k, l, i, j)

do i=1,3
do j=1,3
do k=1,3
do l=1,3
transp4%abcd(i,j,k,l) = T%abcd(k,l,i,j)
end do
end do
end do
end do

end function transp4

Expand Down

0 comments on commit 22e52a2

Please sign in to comment.