以下のエントリをユーザー自身が用意することで,     
独自の変換関数を定義することができる.     
     
     
     
STFUSR(UX,UY,XX,YY) 正変換 STIUSR(XX,XY,UX,UY) 逆変換 STSUSR 関数初期化 
     
この正変換と逆変換のエントリは, STFTRF の下請けルーチンである     
STFTRN から呼ばれる.     
STFUSR に渡ってくる UX, UY の値は,     
STFRAD と STFROT による処理が終った後の値である.     
拡大, 並行移動はSTFTRN が行なうので, これらの関数は,     
それ以外の基本的な変換関数を定義するだけで良い.     
変換関数には正変換と逆変換があるが,     
逆変換を使わない場合には, 逆変換はエントリー文だけで良い.     
     
     
     
     
STSUSR は, 変換関数を確定するSGSTRFから呼ばれる.     
このエントリは, 通常SGSTRF が行なっている STPACK の関数を     
初期化しなければならない.     
初期化すべき関数は,     
STSTRF, STSTRN, STSRAD, STSROT (地図投影の時)     
である.     
     
     
     
次のプログラムは常用対数の log-log 座標を定義するものである.
*--------------------------------------------------------------
*     USER SUPPLIED FUNCTION
*--------------------------------------------------------------
      SUBROUTINE STFUSR(UX, UY, XX, YY)
      XX = LOG(UX)
      YY = LOG(UY)
      RETURN
*--------------------------------------------------------------
      ENTRY STIUSR(XX, YY, UX, UY)
      UX = EXP(XX)
      UY = EXP(YY)
      RETURN
      END
*--------------------------------------------------------------
      SUBROUTINE STSUSR
      CALL SGQVPT(VXMIN, VXMAX, VYMIN, VYMAX)
      CALL SGQWND(UXMIN, UXMAX, UYMIN, UYMAX)
      CX = (VXMAX-VXMIN)/LOG(UXMAX/UXMIN)
      CY = (VYMAX-VYMIN)/LOG(UYMAX/UYMIN)
      VX0 = VXMIN - CX*LOG(UXMIN)
      VY0 = VYMIN - CY*LOG(UYMIN)
      CALL STSTRF(.FALSE.)
      CALL STSRAD(.FALSE., .FALSE.)
      CALL STSTRN(99, CX, CY, VX0, VY0)
      END
   
次のプログラムは MATH1/MAPLIB の MPFMWL/MPIMWL を使って モルワイデもどきの地図投影関数を定義するものである.
*---------------------------------------------------------------
*     USER SUPPLIED FUNCTION
*---------------------------------------------------------------
      SUBROUTINE STFUSR(UX, UY, XX, YY)
      CALL MPFMWL(UX, UY, XX, YY) 
      RETURN 
*---------------------------------------------------------------
      ENTRY STIUSR(XX, YY, UX, UY) 
      CALL MPIMWL(XX, YY, UX, UY) 
      RETURN 
      END 
*---------------------------------------------------------------
      SUBROUTINE STSUSR 
      LOGICAL LDEG 
      CALL SGQVPT(VXMIN, VXMAX, VYMIN, VYMAX) 
      CALL SGQSIM(SIMFAC, XOFF, YOFF) 
      CALL SGQMPL(PLX, PLY, PLROT) 
      CALL SGLGET('LDEG', LDEG) 
      IF(LDEG) THEN 
        CP = RFPI()/180 
      ELSE 
        CP = 1 
      ENDIF 
      CALL SGRGET('TXMIN', TXMIN) 
      CALL SGRGET('TXMAX', TXMAX) 
      CALL SGRGET('TYMIN', TYMIN) 
      CALL SGRGET('TYMAX', TYMAX) 
      CALL SZSCLX(CP*TXMIN, CP*TXMAX) 
      CALL SZSCLY(CP*TYMIN, CP*TYMAX) 
      VX0 = (VXMAX+VXMIN)/2 + XOFF 
      VY0 = (VYMAX+VYMIN)/2 + YOFF 
      CALL STSTRF(.TRUE.) 
      CALL STSRAD(LDEG, LDEG) 
      CALL STSROT(RFPI()/2-CP*PLY, CP*PLX, CP*PLROT) 
      CALL STSTRN(99, SIMFAC, SIMFAC, VX0, VY0) 
      END