MODULE M1 IMPLICIT NONE TYPE mmm COMPLEX(KIND=8), DIMENSION(:,:), POINTER :: data END TYPE mmm CONTAINS SUBROUTINE S(ma,mb,mc) TYPE(mmm), POINTER :: ma,mb,mc COMPLEX(KIND=8), DIMENSION(:, :), & POINTER :: a, b, c INTEGER :: i,j a=>ma%data b=>mb%data c=>mc%data DO i=1,size(a,1) DO j=1,size(a,2) c(i,j)=a(i,j)*b(i,j) ENDDO ENDDO END SUBROUTINE END MODULE M1