! tlib.f90 MODULE T_LIB CONTAINS SUBROUTINE OV(X,Y,N1,N2) IMPLICIT NONE ! INTEGER, INTENT(IN) :: N1,N2 DOUBLE PRECISION, INTENT(IN) :: Y(N1,N2) DOUBLE PRECISION, INTENT(INOUT) :: X(N1,N2) INTEGER :: I,J ! DO J=1,N2 DO I=1,N1 X(I,J) = 2.D0*Y(I,J) ENDDO ENDDO ! RETURN END SUBROUTINE OV SUBROUTINE OV_AN(X,Y,N1,N2) IMPLICIT NONE ! INTEGER, INTENT(IN) :: N1,N2 DOUBLE PRECISION, INTENT(IN) :: Y(N1,N2) DOUBLE PRECISION, INTENT(INOUT) :: X(N1,N2) ! X = 2.D0*Y ! RETURN END SUBROUTINE OV_AN SUBROUTINE OV_SH1(X,Y) IMPLICIT NONE ! DOUBLE PRECISION, INTENT(IN) :: Y(:,:) DOUBLE PRECISION, INTENT(INOUT) :: X(:,:) INTEGER :: I,J ! DO J=1,SIZE(X,2) DO I=1,SIZE(X,1) X(I,J) = 2.D0*Y(I,J) ENDDO ENDDO ! RETURN END SUBROUTINE OV_SH1 SUBROUTINE OV_SH1_AN(X,Y) IMPLICIT NONE ! DOUBLE PRECISION, INTENT(IN) :: Y(:,:) DOUBLE PRECISION, INTENT(INOUT) :: X(:,:) ! X = 2.D0*Y ! RETURN END SUBROUTINE OV_SH1_AN SUBROUTINE OV_SH2(X,Y) IMPLICIT NONE ! DOUBLE PRECISION, INTENT(IN) :: Y(:,:) DOUBLE PRECISION, INTENT(INOUT) :: X(SIZE(Y,1),SIZE(Y,2)) INTEGER :: I,J ! DO J=1,SIZE(X,2) DO I=1,SIZE(X,1) X(I,J) = 2.D0*Y(I,J) ENDDO ENDDO ! RETURN END SUBROUTINE OV_SH2 SUBROUTINE OV_SH2_AN(X,Y) IMPLICIT NONE ! DOUBLE PRECISION, INTENT(IN) :: Y(:,:) DOUBLE PRECISION, INTENT(INOUT) :: X(SIZE(Y,1),SIZE(Y,2)) ! X = 2.D0*Y ! RETURN END SUBROUTINE OV_SH2_AN END MODULE T_LIB