SUBROUTINE GLB2LOC(IGLB,JGLB,ICOL,JROW,MYPE) C---------------------------------------------------------- INCLUDE "parmeta" C---------------------------------------------------------- JBASE=JM/JNPES JEXTRA=NINT(JNPES*(REAL(JM)/JNPES-JBASE)) C JBNDRY=JEXTRA*(JBASE+1) IF(JGLB.LE.JBNDRY)THEN JROWPE=JGLB/(JBASE+1)+1 JROW=MOD(JGLB,JBASE+1) IF(JROW.EQ.0)THEN JROWPE=JROWPE-1 JROW=JBASE+1 ENDIF ELSE JDIF=JGLB-JBNDRY JROWPE=JEXTRA+JDIF/JBASE+1 JROW=MOD(JDIF,JBASE) IF(JROW.EQ.0)THEN JROWPE=JROWPE-1 JROW=JBASE ENDIF ENDIF C*** IBASE=IM/INPES IEXTRA=NINT(INPES*(REAL(IM)/INPES-IBASE)) C IBNDRY=IEXTRA*(IBASE+1) IF(IGLB.LE.IBNDRY)THEN ICOLPE=IGLB/(IBASE+1)+1 ICOL=MOD(IGLB,IBASE+1) IF(ICOL.EQ.0)THEN ICOLPE=ICOLPE-1 ICOL=IBASE+1 ENDIF ELSE IDIF=IGLB-IBNDRY ICOLPE=IEXTRA+IDIF/IBASE+1 ICOL=MOD(IDIF,IBASE) IF(ICOL.EQ.0)THEN ICOLPE=ICOLPE-1 ICOL=IBASE ENDIF ENDIF C MYPE=(JROWPE-1)*INPES+ICOLPE-1 C WRITE(0,100)IGLB,JGLB WRITE(0,101)ICOL,JROW,MYPE 100 FORMAT(' GLOBAL (',I3,',',I3,')') 101 FORMAT(' LOCAL (',I3,',',I3,')',' ON PE',I3) C RETURN END