
      Integer,Parameter :: M=6
      Integer :: A(M,M),B(M,M), R(M*M)

      k=0
      Do i=1, M
         DO J=1,M
            if ((I-J) < 0) then
               L=I+(J*J-J)/2
            else
               L=J+(I*I-I)/2
            endif
            A(i,j)=L
            k=k+1; B(j,i)=k
         ENDDO
      Enddo

      Do I=1,M
         DO J=1,M
            if ((I-J) < 0) then
               L=I+(J*J-J)/2
            else
               L=J+(I*I-I)/2
            endif
            print*,"I,J,L,B=",I,J,L,B(j,i) !D(J)=R(L)
         ENDDO
      ENDDO
      print*,"---------------"
      Do i=1,M
         print "(10I5)",(B(i,j),j=1,i)
      Enddo
      Do i=1,M
         print "(10I5)",(B(i,j),j=1,M)
      Enddo
      R = reshape(B,(/M*M/))
      print*,"======="
      print "(10I5)",(R(i),i=1,M*M)

      A = reshape(R,(/M,M/))
      print*,"======="
      Do i=1,M
         print "(10I5)",(A(i,j),j=1,M)
      Enddo
     End
