00001 #include "machine.h"
00002 typedef signed char integer1;
00003 typedef short integer2;
00004
00005
00006 #define MTRAN(Type) {\
00007 Type *A;\
00008 Type *B;\
00009 A=(Type *)a;\
00010 --A;\
00011 B=(Type *)b;\
00012 --B;\
00013 ia = 0;i1 = *n;\
00014 i2 = *m;\
00015 for (j = 1; j <= i1; ++j) {\
00016 ib = j;\
00017 for (i = 1; i <= i2; ++i) {\
00018 B[ib] = A[ia + i];\
00019 ib += *nb;\
00020 }\
00021 ia += *na;\
00022 }\
00023 }
00024
00025
00026 int C2F(genmtran)(typ,a, na, b, nb, m, n)
00027 integer *na, *nb, *m, *n;
00028 integer *typ;
00029 int *a;
00030 int *b;
00031 {
00032 integer i1, i2;
00033 static integer i, j, ia, ib;
00034 switch (*typ) {
00035 case 1:
00036 MTRAN(integer1);
00037 break;
00038 case 2:
00039 MTRAN(integer2);
00040 break;
00041 case 4:
00042 MTRAN(integer);
00043 break;
00044 case 11:
00045 MTRAN(unsigned char);
00046 break;
00047 case 12:
00048 MTRAN(unsigned short);
00049 break;
00050 case 14:
00051 MTRAN(unsigned int);
00052 break;
00053 }
00054 return 0;
00055 }
00056