|
C======================================================================
C File: wfn.f
C RCS: $Id: wfn.f,v 1.9 1994/05/04 15:47:54 lyndon Exp $
C======================================================================
C 05/6-DEC-92 Changed include statements and other small modifcations
C due to new distribution description and include structure
C 04-AUGUST-94 Small changes to take advantage of the way T3D
C comunicates with the Y-MP. (ADS and RP).
C----------------------------------------------------------------------C
C File : wfn.sp C
C Created: 17/10/90 LJC C
C History: See below C
C----------------------------------------------------------------------C
C 23-MAY-91 COSMETIC CHANGES DONE TO MEET SPECIFIC MEIKO
C REQUIREMENTS. (IS)
C----------------------------------------------------------------------
SUBROUTINE GETWFN(IUNIT,NRPLWV,NBANDS,CPTW,CWORK)
IMPLICIT INTEGER*4 (I-N)
IMPLICIT COMPLEX*16 (C)
IMPLICIT REAL*8 (A,B,D-H,O-Z)
INTEGER ZSIZE
PARAMETER (ZSIZE=2)
INCLUDE 'cube.inc'
INCLUDE 'data.inc'
DIMENSION CPTW(NRPLWV,NBANDS),CWORK(NRPLWV)
IF (INODE.EQ.IONODE) THEN
DO 10 JNODE = 1,NODES
DO 10 NB = 1,NBANDS
IF (JNODE.EQ.INODE) THEN
CALL CBUFFERREAD(IUNIT, CPTW(1,NB), NRPLWV)
ELSE
READ (IUNIT) CWORK
CALL SHMEM_PUT(CPTW(1,NB), CWORK, ZSIZE*NRPLWV, JNODE-1)
ENDIF
10 CONTINUE
END IF
CALL BARRIER()
CALL shmem_udcflush
RETURN
END
SUBROUTINE PUTWFN(IUNIT,NRPLWV,NBANDS,CPTW,CWORK)
IMPLICIT INTEGER*4 (I-N)
IMPLICIT COMPLEX*16 (C)
IMPLICIT REAL*8 (A,B,D-H,O-Z)
INTEGER ZSIZE
PARAMETER (ZSIZE=2)
INCLUDE 'cube.inc'
INCLUDE 'data.inc'
DIMENSION CPTW(NRPLWV,NBANDS),CWORK(NRPLWV)
CALL BARRIER()
IF (INODE.EQ.IONODE) THEN
DO 10 JNODE = 1,NODES
DO 10 NB = 1,NBANDS
IF (JNODE.EQ.INODE) THEN
CALL CBUFFERWRITE(IUNIT, CPTW(1,NB), NRPLWV)
ELSE
CALL SHMEM_GET(CWORK, CPTW(1,NB), ZSIZE*NRPLWV, JNODE-1)
WRITE (IUNIT) CWORK
ENDIF
10 CONTINUE
END IF
RETURN
END
SUBROUTINE CBUFFERWRITE(IUNIT, CBUFFER, LEN)
IMPLICIT INTEGER*4 (I-N)
IMPLICIT COMPLEX*16 (C)
IMPLICIT REAL*8 (A,B,D-H,O-Z)
DIMENSION CBUFFER(LEN)
WRITE (IUNIT) CBUFFER
RETURN
END
SUBROUTINE CBUFFERREAD(IUNIT, CBUFFER, LEN)
IMPLICIT INTEGER*4 (I-N)
IMPLICIT COMPLEX*16 (C)
IMPLICIT REAL*8 (A,B,D-H,O-Z)
DIMENSION CBUFFER(LEN)
READ (IUNIT) CBUFFER
RETURN
END
C======================================================================
C End of File: wfn.f
C======================================================================
|