[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000661] Re: dcl ruby interface



��Ƿ��Ǥ���

��:
 > �ʾ��襤�󥿡��ե�����
 > ���Ѥ�ʤ��ȤϤޤ������ʤ���Ǥۤ�Ȥΰ��̸����Ͻ���ޤ��󤬡�

��®�Ǥ����������ʤ�������Ȥ����ä��Ǥ���

 > ���������С�dcl �˴�Ϣ���Ƥ�뤳�Ȥ�פ��Ф��ޤ�����dcl�ǥ��顼
 > �䥦�����˥󥰤ν����򤹤� MSGDMP �򡢥����ʥ�ϥ�ɥ餬��������
 > ����褦�ˤ��ʤ��ȡ����顼�Ǥ����ʤ�¹Ԥ��ߤäƤ��ޤ��ޤ��͡�
 > ruby �Ѥˤϡ����顼���ˤ�ruby �Ρ��㳰�פ�Ф��ؿ�������������
 > Ͽ���٤��Ǥ��͡��������˥󥰤��å������ξ�纣�ޤǤɤ���Ǥ���

dcl �ǥ��꡼��Ϣ�Υ��顼��������Ȥ���äȤ�ä����Ǥ��͡��¹�
��ߤ�ʤ��Ȥ����Ǥ�̵�����Ȥ��������ꤷ�ޤ��������������餯 
MSGDMP ����ª�����Ԥ϶ڤΤ������顼�ǡ����꡼��Ϣ�Υ��顼��
���������˽Ф�ΤǤ��礦�ʤ��äȡˡ��Ȥ������������� Fortran77 
�Ǥ����ᤷ���ǡ��¹Ի��˸��ΤǤ��ʤ����顼���������ޤ����ޤ��פ�
�Ĥ��Τ�����μºݤ�Ĺ�����������Ϥ��줿Ĺ���Ȱ㤦�Ȥ������ȤǤ���
�Ȥ��������꡼����ϴ���Ū�ˤ���ǤۤܿԤ��Ƥ���褦�ʵ�������
����

���Υ��顼��̤�����ɤ���ꤷ�褦������ޤ��󡣤�äơ�dcl��ruby
���󥿡��ե������Ǥ������Ĺ���ϰ����ˤʤäƤ��ƤϤޤ����Ǥ���
���ϡ�Fortran��

    SUBROUTINE USGRAPH(X,X.Y)

���б����ơ�ruby �Ǥ�

    DCL.usgraph(n,x,y)

�ȸƤ٤�褦��ư��������Ƥޤ����������Ĺ���򤢤�魯 n �ϼ�ư
������٥�ǤĤ֤��٤��Ǥ������ˤ⤤�äڤ�����������Ȥ����ꡢ��
�ΤȤ��ϡ���ö DCL.usgraph(n,x,y) ����Ƥ��ơ����ξ�� n ��Ĥ�
���Τ��碌��Ф����Ȥ����ո��������ä��褦�˻פ��ޤ�����������
dcl������ʤΤǼ�ư�����Υ�٥�Ǥ��줬�����˱ۤ������ȤϤʤ�
�Ȼפ��ޤ����Ĥޤꡢ�ǽ餫��

    DCL.usgraph(x,y)

�Ǥ������Τ�������Ȥߤϰ������ޤ����͡���Ȥ�Ȥ�

    SUBROUTIE USGRAPH (
      INTEGER N
      REAL X(*)
      REAL Y(*)
    )

�ȤʤäƤ����ץ��ȥ���������򡢼��Ȥ�

    SUBROUTIE USGRAPH (
      INTEGER N
      REAL X(N)
      REAL Y(N)
    )

�Ȥ���Τ���ˤ�äƤ�櫓�Ǥ�����äơ�ruby ���󥿡��ե�������
��ư���������

dcl_usgrph(obj, x, y)
    VALUE obj, x, y;
{
    integer i_n;
    real *i_x;
    real *i_y;

    ..(ά)..

    i_n=NA_LENGTH(x);
    if (i_n != NA_LENGTH(y)) {rb_raise(rb_eDclError,"x.length !=  y.length");}
    i_x = dcl_obj2crealary(x);
    i_y = dcl_obj2crealary(y);

    usgrph_(&i_n, i_x, i_y);

    ..(��ά)..

}

�Ȥʤ�褦�Ǥ���Ϥ��Ǥ�(obj �� "self" �ʤΤǡ������ 
DCL.usgraph(x,y) �ˤʤ�ޤ�)�����ʤߤˤ�ȤΥ������Ǥ�

dcl_usgrph(obj, n, x, y)
{
    ....
    VALUE obj, n, x, y;
    i_n = NUM2INT(n);
    i_x = dcl_obj2crealary(x);
    i_y = dcl_obj2crealary(y);
    usgrph_(&i_n, i_x, i_y);
    ....

�Ǥ���

�� �Ȥ����ǡ��٤������ȤǤ�������Ǥ� NumArray ���� length �����
   �ޥ����򲾤� NA_LENGTH �Ȥ��ޤ����������� Array �ʤ� NumArray ��
   ���ξ��� NumArray ���Ѵ����Ƥ���������٤����Ȥ����ä��Ϥ��Ǥ�
   �������Ȥ�����ޤ����ޤ������ʤäƤޤ��󤬡��ʤ���ˤ����ͤ��
   �ޤʤ� Array ���ӽ�����Ȥ��ä���Ȥ� NumArray �ˤ����뤳�Ȥ���
   ���ޤ�������� NumArray ��ͭ�λŻ��Ȥ���(���Ǥ�)���ݡ��Ȥ��Ƥޤ�
   ����Ǥ���Ф�����Ǥ��ˡ�

���ʤߤˡ����Τ褦�ʼ�ư�����򤷤ʤ��ȡ����̤δؿ����Ф������Ȥ�

   def usgraph�ʤ�Ȥ� (x,y)
     n=x.lengh
     raise(DclError,"x.length !=  y.length") if (x.length !=  y.length)
     DCL.usgraph(n,x,y)
   end

�Ȥ��ä���Τ��Ѱդ��뤳�Ȥˤʤ�ޤ���

�� ̾����ɤ����褦������ޤ����͡�

---
��Ƿ�� ��                    horinout@xxxxxx
�������������Ȳʳظ��楻�󥿡�     611-0011 �����Ըޥ���