------- Comment #2 from jv244 at cam dot ac dot uk  2010-04-23 09:25 -------
reduced testcase:

  IMPLICIT NONE
  INTEGER, PARAMETER :: sp=4, dp=8
  TYPE cp_fm_type
     REAL(KIND=sp), DIMENSION(:,:), POINTER :: local_data_sp
     REAL(KIND=dp), DIMENSION(:,:), POINTER :: local_data
     INTEGER :: nrow_global,ncol_global
     LOGICAL :: use_sp
  END TYPE
  TYPE(cp_fm_type), POINTER :: amat
  INTEGER :: N
  INTEGER :: irow_global, ncol_global, nrow_global, icol_global
  REAL(KIND = dp), DIMENSION(:,:), POINTER :: a
  REAL(KIND = sp), DIMENSION(:,:), POINTER :: a_sp
  N=17
  ALLOCATE(amat)
  ALLOCATE(amat%local_data(N,N))
  amat%nrow_global=N
  amat%ncol_global=N
  amat%use_sp=.FALSE.
  amat%local_data=0

    nrow_global=amat%nrow_global
    ncol_global=amat%ncol_global
    a => amat%local_data
    a_sp => amat%local_data_sp

    DO irow_global=1,nrow_global
       DO icol_global=irow_global+1,ncol_global
          IF(amat%use_sp) THEN
             a_sp(icol_global,irow_global)=a_sp(irow_global,icol_global)
          ELSE
             a(icol_global,irow_global)=a(irow_global,icol_global)
          ENDIF
       ENDDO
    ENDDO


END


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43866

Reply via email to