*"É½Âê   SHALO ÎÏ³Ø ³Ê»Ò¢ª¥¹¥Ú¥¯¥È¥ë GCM5(SDG2WD)
*
*"ÍúÎò   90/08/31 ¾Â¸ý  ÆØ
*"       92/06/11 ÃÝ¹­¿¿°ì
*"       92/11/14 ÃÝ¹­¿¿°ì
*
*
**********************************************************************
*"            << »þ´ÖÊÑ²½¹à ( ¥¹¥Ú¥¯¥È¥ë²½ ) >>
**********************************************************************
      SUBROUTINE TENG2W
     O         ( WTVOR , WTDIV , WTPHI ,
     I           GTUA  , GTVA  , GTKE  , GTUP  , GTVP  , GTH   ,
     C           FLAPLA                                          )
*
#if   SYS_IBMS
      INCLUDE   (ZCDIM)
#else
#include        "zcdim.F"                    !" ³Ê»ÒÅÀ¿ô, ÇÈ¿ô
#endif
*
      REAL       WTVOR ( NMDIM, KMAX      )  !" ±²ÅÙ  ¦Æ »þ´ÖÊÑ²½
      REAL       WTDIV ( NMDIM, KMAX      )  !" È¯»¶  £Ä »þ´ÖÊÑ²½
      REAL       WTPHI ( NMDIM, KMAX      )  !" ÁØ¸ü  ¦Õ »þ´ÖÊÑ²½
*
      REAL       GTUA  ( IDIM, JDIM, KMAX )  !" ÅìÀ¾±¿Æ°ÎÌ°ÜÎ®¹à£Õ£Á
      REAL       GTVA  ( IDIM, JDIM, KMAX )  !" ÆîËÌ±¿Æ°ÎÌ°ÜÎ®¹à£Ö£Á
      REAL       GTKE  ( IDIM, JDIM, KMAX )  !" ±¿Æ°¥¨¥Í¥ë¥®¡¼¹à£Ë£Å
      REAL       GTUP  ( IDIM, JDIM, KMAX )  !" ÁØ¸üÅìÀ¾°ÜÎ®¹à  £Õ¦Õ
      REAL       GTVP  ( IDIM, JDIM, KMAX )  !" ÁØ¸üÆîËÌ°ÜÎ®¹à  £Ö¦Õ
      REAL       GTH   ( IDIM, JDIM, KMAX )  !" ²¹ÅÙ»þ´ÖÊÑ²½¹à  £È
*
      REAL       FLAPLA( NMDIM )             !" ¥é¥×¥é¥·¥¢¥ó¤Î·¸¿ô
*
      COMMON    /COMWRK/
     &           WTKE
      REAL       WTKE  ( NMDIM     , KMAX )  !" ±¿Æ°¥¨¥Í¥ë¥®¡¼¹à £Ë£Å
*
      INTEGER    K, NM
*
*"          < 1.  ±²ÅÙ ¦Æ  >
*
*
*"       ( - ¢ß(£Õ£Á)/¢ß£ù )
*
      CALL G2W
     O         ( WTVOR ,
     I           GTUA  ,
     I           'YGRA', 'POS ',  KMAX  )
*
*"       (  ¢ß(£Ö£Á)/¢ß£ø )
*
      IF ( MMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WTVOR ,
     I           GTVA  ,
     I           'XGRA', 'ADD ', KMAX  )
      ENDIF
*
*"          < 2.  È¯»¶ £Ä  >
*
*"       (  ¢ß(£Ö£Á)/¢ß£ù )
*
      CALL G2W
     O         ( WTDIV ,
     I           GTVA  ,
     I           'YGRA', 'NEG ', KMAX )
*
*"       (  ¢ß(£Õ£Á)/¢ß£ø )
*
      IF ( MMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WTDIV ,
     I           GTUA  ,
     I           'XGRA', 'ADD ', KMAX )
      ENDIF
*
*"       ( £Ë£Å )
*
      CALL G2W
     O         ( WTKE  ,
     I           GTKE  ,
     I           '    ', 'POSO', KMAX )
*
      DO 2000 K = 1 , KMAX
         DO 2000 NM = 1 , NMDIM
*
*"       ( - ¢à¡¦¢à £Å )
*
            WTDIV ( NM, K ) =  WTDIV ( NM, K )
     &                          - FLAPLA( NM ) * WTKE( NM, K )
*
 2000 CONTINUE
*
*"          < 3. ÁØ¸ü ¦Õ >
*
*       ( - ¢ß(£Ö¦Õ')/¢ß£ù )
*
      CALL G2W
     O         ( WTPHI ,
     I           GTVP  ,
     I           'YGRD', 'POS ', KMAX )
*
*"       ( - ¢ß(£Õ¦Õ')/¢ß£ø )
*
      IF ( MMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WTPHI ,
     I           GTUP  ,
     I           'XGRD', 'SUB ', KMAX )
      ENDIF
*
*"       ( £È )
*
      CALL G2W
     O         ( WTPHI ,
     I           GTH   ,
     I           '    ', 'ADDO', KMAX )
*
      RETURN
      END
***********************************************************************
*"             << Í½ÊóÊÑ¿ô ( ¥¹¥Ú¥¯¥È¥ë²½ ) >>
***********************************************************************
      SUBROUTINE GD2WD
     O         ( WDVOR , WDDIV , WDPHI ,
     I           GDVOR , GDDIV , GDPHI   )
*
#if   SYS_IBMS
      INCLUDE   (ZCDIM)
#else
#include        "zcdim.F"
#endif
*
      REAL       WDVOR ( NMDIM , KMAX     )  !" ±²ÅÙ  ¦Æ
      REAL       WDDIV ( NMDIM , KMAX     )  !" È¯»¶  £Ä
      REAL       WDPHI ( NMDIM , KMAX     )  !" ÁØ¸ü  ¦Õ
*
      REAL       GDVOR ( IDIM*JDIM, KMAX )   !" ±²ÅÙ  ¦Æ
      REAL       GDDIV ( IDIM*JDIM, KMAX )   !" È¯»¶  £Ä
      REAL       GDPHI ( IDIM*JDIM, KMAX )   !" ÁØ¸ü  ¦Õ
*
*"          < 1. Í½ÊóÊÑ¿ô ¦Æ,£Ä,¦Õ ¤ÎÊÑ´¹ >
*
      CALL G2W
     O         ( WDVOR ,
     I           GDVOR ,
     I           '    ', 'POS ', KMAX )
*
      CALL G2W
     O         ( WDDIV ,
     I           GDDIV ,
     I           '    ', 'POS ', KMAX )
*
      CALL G2W
     O         ( WDPHI ,
     I           GDPHI ,
     I           '    ', 'POSO', KMAX )
*
      RETURN
      END
***********************************************************************
*"        << ¡Ê£Õ,£Ö¡Ë³Ê»ÒÅÀ ¢ª ¡Ê¦Æ,£Ä¡Ë ¥¹¥Ú¥¯¥È¥ë >>
***********************************************************************
      SUBROUTINE GUV2VD
     O         ( WDVOR , WDDIV ,
     I           GDU   , GDV   ,
     C           UVFACT         )
*
#if   SYS_IBMS
      INCLUDE   (ZCDIM)
#else
#include        "zcdim.F"
#endif
*
      REAL       WDVOR ( NMDIM , KMAX     )  !" ±²ÅÙ  ¦Æ
      REAL       WDDIV ( NMDIM , KMAX     )  !" È¯»¶  £Ä
*
      REAL       GDU   ( IDIM*JDIM, KMAX )   !" À¾É÷  £õ
      REAL       GDV   ( IDIM*JDIM, KMAX )   !" ÆîÉ÷  £ö
      REAL       UVFACT( IDIM*JDIM )         !" u¢ªU ¤Î¥Õ¥¡¥¯¥¿¡¼
*
      COMMON    /COMWRK/
     &           GDUU  , GDVV
      REAL       GDUU  ( IDIM*JDIM, KMAX )   !" À¾É÷  £Õ
      REAL       GDVV  ( IDIM*JDIM, KMAX )   !" ÆîÉ÷  £Ö
*
      INTEGER    K, IJ
*
*"          < 1. ¦Æ ¤Î¥¹¥Ú¥¯¥È¥ë >
*
      DO 1100 K = 1, KMAX
         DO 1100 IJ = 1, IDIM*JDIM
            GDUU ( IJ, K ) = GDU ( IJ, K ) * UVFACT( IJ )
            GDVV ( IJ, K ) = GDV ( IJ, K ) * UVFACT( IJ )
 1100 CONTINUE
*
      IF ( LMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WDVOR ,
     I           GDUU  ,
     I           'YGRA', 'POS ', KMAX )
      ELSE
         CALL RESET ( WDVOR, NMDIM*KMAX )
      ENDIF
*
      IF ( MMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WDVOR ,
     I           GDVV  ,
     I           'XGRA', 'ADD ', KMAX )
      ENDIF
*
*"         < 2. £Ä ¤Î¥¹¥Ú¥¯¥È¥ë >
*
      IF ( LMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WDDIV ,
     I           GDVV  ,
     F           'YGRA', 'NEG ', KMAX )
      ELSE
         CALL RESET ( WDDIV, NMDIM*KMAX )
      ENDIF
*
      IF ( MMAX .GE. 1 ) THEN
         CALL G2W
     O         ( WDDIV ,
     I           GDUU  ,
     F           'XGRA', 'ADD ', KMAX )
      ENDIF
*
      RETURN
      END
