Changeset 129 for altifloat/src


Ignore:
Timestamp:
08/26/14 17:42:07 (10 years ago)
Author:
jbrlod
Message:

last version of Varanth

Location:
altifloat/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • altifloat/src/floater_delta.d

    r128 r129  
    11#define FILTER 
    22 
    3 defval jtlag 36//nombre de pas de temps Delta t/ delta t  
    4 //for the fake 
    5 //defval jtlag 720 
    6  
    7 defval jptfl 175 //Nombre total de pas de temps 
    8 defval jpnfl 5 //nombre total de flotteurs 
     3defval jtlag 61//nombre de pas de temps Delta t/ delta t  
     4 
     5 
     6 
     7defval jptfl 61 //Nombre total de pas de temps 
     8defval jpnfl 3 //nombre total de flotteurs 
    99 
    1010 
    1111defval nlon 87 //nbre de points de grilles en longitude 
    1212defval nlat 58 //nbre de points de grilles en latitude 
    13 defval nfloat 5 //nbre de flotteurs max par assim 
     13defval nfloat 3 //nbre de flotteurs max par assim 
    1414 
    1515#ifdef FILTER 
     
    5858 
    5959modul r_float space S_float input 4  output 2 tempo  
    60 modul ur      space S_float input 18 output 2 tempo 
     60modul ur      space S_float input 26 output 2 tempo 
    6161modul uinter space S_float noward   output 8 tempo 
    62 modul xinter space S_float noward   output 8 tempo 
     62modul xinter_u space S_float noward   output 8 tempo 
     63modul xinter_v space S_float noward   output 8 tempo 
    6364 
    6465 
     
    7172//deltas 
    7273modul r_float_d space S_float_d input 4  output 2 tempo  
    73 modul ur_d      space S_float_d input 18 output 2 tempo 
     74modul ur_d      space S_float_d input 26 output 2 tempo 
    7475modul uinter_d space S_float_d noward   output 8 tempo 
    7576//modul xinter_d space S_float_d noward   output 8 tempo 
     
    110111 
    111112ctin ur       1..8   from uinter 1..8 i t 
    112 ctin ur       9..16  from xinter 1..8 i t 
    113 ctin ur       17..18 from r_float 1..2 i t-1 
     113ctin ur       9..16  from xinter_u 1..8 i t 
     114ctin ur       17..24  from xinter_v 1..8 i t 
     115ctin ur       25..26 from r_float 1..2 i t-1 
    114116 
    115117ctin locate   1..2   from r_float 1..2 i t-1 
     
    120122 
    121123ctin ur_d       1..8   from uinter_d 1..8 i t 
    122 ctin ur_d       9..16  from xinter 1..8 i t 
    123 ctin ur_d       17..18 from r_float 1..2 i t-1 
     124ctin ur_d       9..16  from xinter_u 1..8 i t 
     125ctin ur_d       17..24  from xinter_v 1..8 i t 
     126ctin ur_d       25..26 from r_float 1..2 i t-1 
    124127 
    125128ctin locate_d   1..2   from r_float_d 1..2 i t-1 
  • altifloat/src/locate.h

    r128 r129  
    11forward(YREAL x, YREAL y) 
    22{ 
    3  
    4 //printf("x=%f ; y=%f\n",x,y); 
    53        //Yj = longitude 
    64        //Yk = latitude 
    7         int j_ll=(int)x; 
     5        int j_ll=(int)(x-0.5); 
    86        int k_ll=(int)y; 
    97        if (j_ll==Yj && k_ll==Yk) 
    108        { 
    119        //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
    12           YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk,YTemps)*mask[Yj][Yk];//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
    13                 YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk,YTemps)*mask[Yj+1][Yk]; 
    14                 YS3_uinter(Yi,YTemps)=YS1_u(Yj,Yk+1,YTemps)*mask[Yj][Yk+1]; 
    15                 YS4_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk+1,YTemps)*mask[Yj+1][Yk+1]; 
    16                 YS5_uinter(Yi,YTemps)=YS1_v(Yj,Yk,YTemps)*mask[Yj][Yk]; 
    17                 YS6_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk,YTemps)*mask[Yj+1][Yk]; 
    18                 YS7_uinter(Yi,YTemps)=YS1_v(Yj,Yk+1,YTemps)*mask[Yj][Yk+1]; 
    19                 YS8_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk+1,YTemps)*mask[Yj+1][Yk+1]; 
    20                 YS1_xinter(Yi,YTemps)=(YREAL)Yj;                 
    21                 YS2_xinter(Yi,YTemps)=(YREAL)Yj+1;               
    22                 YS3_xinter(Yi,YTemps)=(YREAL)Yj;                 
    23                 YS4_xinter(Yi,YTemps)=(YREAL)Yj+1;               
    24                 YS5_xinter(Yi,YTemps)=(YREAL)Yk;                 
    25                 YS6_xinter(Yi,YTemps)=(YREAL)Yk;                 
    26                 YS7_xinter(Yi,YTemps)=(YREAL)Yk+1;               
    27                 YS8_xinter(Yi,YTemps)=(YREAL)Yk+1;       
     10                YS1_uinter(Yi,YTemps)=YS1_u(Yj,Yk,YTemps); //uLowerLeft //la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
     11                YS2_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk,YTemps); //uLowerRight  
     12                YS3_uinter(Yi,YTemps)=YS1_u(Yj,Yk+1,YTemps); //uUpperLeft 
     13                YS4_uinter(Yi,YTemps)=YS1_u(Yj+1,Yk+1,YTemps); //uUpperRight  
    2814                 
     15                YS1_xinter_u(Yi,YTemps)=(YREAL)Yj+0.5; //iIndexLowerLeft                 
     16                YS2_xinter_u(Yi,YTemps)=(YREAL)Yj+0.5+1.0; //iIndexLowerRight            
     17                YS3_xinter_u(Yi,YTemps)=(YREAL)Yj+0.5; //iIndexUpperLeft                 
     18                YS4_xinter_u(Yi,YTemps)=(YREAL)Yj+0.5+1.0; //iIndexUpperRight            
     19                YS5_xinter_u(Yi,YTemps)=(YREAL)Yk; //jIndexLowerLeft             
     20                YS6_xinter_u(Yi,YTemps)=(YREAL)Yk; //jIndexLowerRight            
     21                YS7_xinter_u(Yi,YTemps)=(YREAL)Yk+1.0; //jIndexUpperLeft                 
     22                YS8_xinter_u(Yi,YTemps)=(YREAL)Yk+1.0; // jIndexUpperRight                       
     23        } 
     24         
     25        j_ll=(int)x; 
     26        k_ll=(int)(y-0.5); 
     27        if (j_ll==Yj && k_ll==Yk) 
     28        { 
     29        //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
     30                YS5_uinter(Yi,YTemps)=YS1_v(Yj,Yk,YTemps); //vLowerLeft //la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
     31                YS6_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk,YTemps); //vLowerRight  
     32                YS7_uinter(Yi,YTemps)=YS1_v(Yj,Yk+1,YTemps); //vUpperLeft 
     33                YS8_uinter(Yi,YTemps)=YS1_v(Yj+1,Yk+1,YTemps); //vUpperRight  
     34                 
     35                YS1_xinter_v(Yi,YTemps)=(YREAL)Yj; //iIndexLowerLeft             
     36                YS2_xinter_v(Yi,YTemps)=(YREAL)Yj+1.0; //iIndexLowerRight                
     37                YS3_xinter_v(Yi,YTemps)=(YREAL)Yj; //iIndexUpperLeft             
     38                YS4_xinter_v(Yi,YTemps)=(YREAL)Yj+1.0; //iIndexUpperRight                
     39                YS5_xinter_v(Yi,YTemps)=(YREAL)Yk+0.5; //jIndexLowerLeft                 
     40                YS6_xinter_v(Yi,YTemps)=(YREAL)Yk+0.5; //jIndexLowerRight                
     41                YS7_xinter_v(Yi,YTemps)=(YREAL)Yk+0.5+1.0; //jIndexUpperLeft             
     42                YS8_xinter_v(Yi,YTemps)=(YREAL)Yk+0.5+1.0; // jIndexUpperRight                   
    2943        } 
    3044} 
     
    3246backward(YREAL x, YREAL y) 
    3347{ 
    34         int j_ll=(int)x; 
     48        int j_ll=(int)(x-0.5); 
    3549        int k_ll=(int)y; 
    3650        if (j_ll==Yj && k_ll==Yk) 
    3751        { 
    38                 YG1_u(Yj,Yk,YTemps)+=YG1_uinter(Yi,YTemps)*mask[Yj][Yk]; 
    39                 YG1_u(Yj+1,Yk,YTemps)+=YG2_uinter(Yi,YTemps)*mask[Yj+1][Yk]; 
    40                 YG1_u(Yj,Yk+1,YTemps)+=YG3_uinter(Yi,YTemps)*mask[Yj][Yk+1]; 
    41                 YG1_u(Yj+1,Yk+1,YTemps)+=YG4_uinter(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    42                 YG1_v(Yj,Yk,YTemps)+=YG5_uinter(Yi,YTemps)*mask[Yj][Yk]; 
    43                 YG1_v(Yj+1,Yk,YTemps)+=YG6_uinter(Yi,YTemps)*mask[Yj+1][Yk]; 
    44                 YG1_v(Yj,Yk+1,YTemps)+=YG7_uinter(Yi,YTemps)*mask[Yj][Yk+1]; 
    45                 YG1_v(Yj+1,Yk+1,YTemps)+=YG8_uinter(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    46  
     52                YG1_u(Yj,Yk,YTemps)+=YG1_uinter(Yi,YTemps); 
     53                YG1_u(Yj+1,Yk,YTemps)+=YG2_uinter(Yi,YTemps); 
     54                YG1_u(Yj,Yk+1,YTemps )+=YG3_uinter(Yi,YTemps); 
     55                YG1_u(Yj+1,Yk+1,YTemps)+=YG4_uinter(Yi,YTemps); 
    4756        } 
    48  
    4957         
    50          
     58        j_ll=(int)x; 
     59        k_ll=(int)(y-0.5); 
     60        if (j_ll==Yj && k_ll==Yk) 
     61        { 
     62                YG1_v(Yj,Yk,YTemps)+=YG5_uinter(Yi,YTemps); 
     63                YG1_v(Yj+1,Yk,YTemps)+=YG6_uinter(Yi,YTemps); 
     64                YG1_v(Yj,Yk+1,YTemps)+=YG7_uinter(Yi,YTemps); 
     65                YG1_v(Yj+1,Yk+1,YTemps)+=YG8_uinter(Yi,YTemps); 
     66        }        
    5167} 
  • altifloat/src/locate_d.h

    r128 r129  
    33        //Yj = longitude 
    44        //Yk = latitude 
    5         int j_ll=YS1_xinter(Yi,YTemps); 
    6         int k_ll=YS5_xinter(Yi,YTemps); 
     5        int j_ll=YS1_xinter_u(Yi,YTemps); //iIndexLowerLeft 
     6        int k_ll=YS5_xinter_u(Yi,YTemps); //jIndexLowerLeft      
    77        if (j_ll==Yj && k_ll==Yk) 
    88        { 
    99                //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
    10                 YS1_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk)*mask[Yj][Yk];//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
    11                 YS2_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk)*mask[Yj+1][Yk]; 
    12                 YS3_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk+1)*mask[Yj][Yk+1]; 
    13                 YS4_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk+1)*mask[Yj+1][Yk+1]; 
    14                 YS5_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk)*mask[Yj][Yk]; 
    15                 YS6_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk)*mask[Yj+1][Yk]; 
    16                 YS7_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk+1)*mask[Yj][Yk+1]; 
    17                 YS8_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk+1)*mask[Yj+1][Yk+1]; 
    18                  
    19                 //printf("u_d=%f\n",YS1_u_d(Yj,Yk)); 
    20  
    21                  
    22                  
     10                YS1_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk);//la 1ere sortie du module uinter pour le floater i est la valeur du module u en Yj Yk 
     11                YS2_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk); 
     12                YS3_uinter_d(Yi,YTemps)=YS1_u_d(Yj,Yk+1); 
     13                YS4_uinter_d(Yi,YTemps)=YS1_u_d(Yj+1,Yk+1);              
     14                //printf("u_d=%f\n",YS1_u_d(Yj,Yk));     
     15        } 
     16         
     17        j_ll=YS1_xinter_v(Yi,YTemps); //iIndexLowerLeft 
     18        k_ll=YS5_xinter_v(Yi,YTemps); //jIndexLowerLeft  
     19        if (j_ll==Yj && k_ll==Yk) 
     20        { 
     21                //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll); 
     22                YS5_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk); 
     23                YS6_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk); 
     24                YS7_uinter_d(Yi,YTemps)=YS1_v_d(Yj,Yk+1); 
     25                YS8_uinter_d(Yi,YTemps)=YS1_v_d(Yj+1,Yk+1);              
     26                //printf("u_d=%f\n",YS1_u_d(Yj,Yk));     
    2327        } 
    2428} 
     
    2630backward(YREAL x, YREAL y) 
    2731{ 
    28         int j_ll=YS1_xinter(Yi,YTemps); 
    29         int k_ll=YS5_xinter(Yi,YTemps); 
     32        int j_ll=YS1_xinter_u(Yi,YTemps); 
     33        int k_ll=YS5_xinter_u(Yi,YTemps); 
    3034        if (j_ll==Yj && k_ll==Yk) 
    3135        { 
    32                 YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps)*mask[Yj][Yk]; 
    33                 YG1_u_d(Yj+1,Yk)+=YG2_uinter_d(Yi,YTemps)*mask[Yj+1][Yk]; 
    34                 YG1_u_d(Yj,Yk+1)+=YG3_uinter_d(Yi,YTemps)*mask[Yj][Yk+1]; 
    35                 YG1_u_d(Yj+1,Yk+1)+=YG4_uinter_d(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    36                 YG1_v_d(Yj,Yk)+=YG5_uinter_d(Yi,YTemps)*mask[Yj][Yk]; 
    37                 YG1_v_d(Yj+1,Yk)+=YG6_uinter_d(Yi,YTemps)*mask[Yj+1][Yk]; 
    38                 YG1_v_d(Yj,Yk+1)+=YG7_uinter_d(Yi,YTemps)*mask[Yj][Yk+1]; 
    39                 YG1_v_d(Yj+1,Yk+1)+=YG8_uinter_d(Yi,YTemps)*mask[Yj+1][Yk+1]; 
    40  
     36                YG1_u_d(Yj,Yk)+=YG1_uinter_d(Yi,YTemps); 
     37                YG1_u_d(Yj+1,Yk)+=YG2_uinter_d(Yi,YTemps); 
     38                YG1_u_d(Yj,Yk+1)+=YG3_uinter_d(Yi,YTemps); 
     39                YG1_u_d(Yj+1,Yk+1)+=YG4_uinter_d(Yi,YTemps); 
    4140        } 
    42  
     41        j_ll=YS1_xinter_v(Yi,YTemps); 
     42        k_ll=YS5_xinter_v(Yi,YTemps); 
     43        if (j_ll==Yj && k_ll==Yk) 
     44        { 
     45                YG1_v_d(Yj,Yk)+=YG5_uinter_d(Yi,YTemps); 
     46                YG1_v_d(Yj+1,Yk)+=YG6_uinter_d(Yi,YTemps); 
     47                YG1_v_d(Yj,Yk+1)+=YG7_uinter_d(Yi,YTemps); 
     48                YG1_v_d(Yj+1,Yk+1)+=YG8_uinter_d(Yi,YTemps); 
     49        } 
    4350 
    4451//YG1_uinter(Yi,Ytemps)=


YG1_u(Yj,Yk)

 
  • altifloat/src/ur.h

    r128 r129  
    1 forward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) 
     1forward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1u, YREAL x2u, YREAL x3u, YREAL x4u, YREAL y1u, YREAL y2u, YREAL y3u, YREAL y4u, YREAL x1v, YREAL x2v, YREAL x3v, YREAL x4v, YREAL y1v, YREAL y2v, YREAL y3v, YREAL y4v,YREAL x, YREAL y) 
    22{ 
    3         YS1=u1 + (u2-u1)*(x-x1)+(u3-u1)*(y-y1)+(u1-u2-u3+u4)*(x-x1)*(y-y1); 
    4         YS2=v1 + (v2-v1)*(x-x1)+(v3-v1)*(y-y1)+(v1-v2-v3+v4)*(x-x1)*(y-y1); 
    5         ur_dx=(u2-u1)+(u1-u2-u3+u4)*(y-y1); 
    6         ur_dy=(u3-u1)+(u1-u2-u3+u4)*(x-x1); 
    7         vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1); 
    8         vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1); 
    9         //printf("YS1=%f ; YS2=%f\n",YS1,YS2); 
     3        YS1=u1 + (u2-u1)*(x-x1u)+(u3-u1)*(y-y1u)+(u1-u2-u3+u4)*(x-x1u)*(y-y1u); 
     4        YS2=v1 + (v2-v1)*(x-x1v)+(v3-v1)*(y-y1v)+(v1-v2-v3+v4)*(x-x1v)*(y-y1v); 
     5        ur_dx=(u2-u1)+(u1-u2-u3+u4)*(y-y1u); 
     6        ur_dy=(u3-u1)+(u1-u2-u3+u4)*(x-x1u); 
     7        vr_dx=(v2-v1)+(v1-v2-v3+v4)*(y-y1v); 
     8        vr_dy=(v3-v1)+(v1-v2-v3+v4)*(x-x1v); 
     9        //printf("u1=%f ; u2=%f\n",u1,u2); 
    1010} 
    1111 
    1212 
    13 backward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) 
     13backward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1u, YREAL x2u, YREAL x3u, YREAL x4u, YREAL y1u, YREAL y2u, YREAL y3u, YREAL y4u, YREAL x1v, YREAL x2v, YREAL x3v, YREAL x4v, YREAL y1v, YREAL y2v, YREAL y3v, YREAL y4v, YREAL x, YREAL y) 
    1414 
    1515{ 
    16         YJ1I1 = YJ2I5 = 1 - (x-x1) - (y-y1) + (x-x1)*(y-y1); 
    17         YJ1I2 = YJ2I6 = (x-x1)-(x-x1)*(y-y1); 
    18         YJ1I3 = YJ2I7 = (y-y1)-(x-x1)*(y-y1); 
    19         YJ1I4 = YJ2I8 = (x-x1)*(y-y1); 
    20         YJ1I17=(u2-u1)+(u1-u2-u3+u4)*(y-y1); 
    21         YJ1I18=(u3-u1)+(u1-u2-u3+u4)*(x-x1); 
    22         YJ2I17=(v2-v1)+(v1-v2-v3+v4)*(y-y1); 
    23         YJ2I18=(v3-v1)+(v1-v2-v3+v4)*(x-x1); 
     16        YJ1I1 = 1 - (x-x1u) - (y-y1u) + (x-x1u)*(y-y1u); 
     17        YJ2I5 = 1 - (x-x1v) - (y-y1v) + (x-x1v)*(y-y1v); 
     18        YJ1I2 = (x-x1u)-(x-x1u)*(y-y1u); 
     19        YJ2I6 = (x-x1v)-(x-x1v)*(y-y1v); 
     20        YJ1I3 = (y-y1u)-(x-x1u)*(y-y1u); 
     21        YJ2I7 = (y-y1v)-(x-x1v)*(y-y1v); 
     22        YJ1I4 = (x-x1u)*(y-y1u); 
     23        YJ2I8 = (x-x1v)*(y-y1v); 
     24        YJ1I25=(u2-u1)+(u1-u2-u3+u4)*(y-y1u); 
     25        YJ1I26=(u3-u1)+(u1-u2-u3+u4)*(x-x1u); 
     26        YJ2I25=(v2-v1)+(v1-v2-v3+v4)*(y-y1v); 
     27        YJ2I26=(v3-v1)+(v1-v2-v3+v4)*(x-x1v); 
    2428        } 
  • altifloat/src/ur_d.h

    r128 r129  
    1 forward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) 
     1forward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1u, YREAL x2u, YREAL x3u, YREAL x4u, YREAL y1u, YREAL y2u, YREAL y3u, YREAL y4u, YREAL x1v, YREAL x2v, YREAL x3v, YREAL x4v, YREAL y1v, YREAL y2v, YREAL y3v, YREAL y4v, YREAL x, YREAL y) 
    22{ 
    3         YS1=u1 + (u2-u1)*(x-x1)+(u3-u1)*(y-y1)+(u1-u2-u3+u4)*(x-x1)*(y-y1); 
    4         YS2=v1 + (v2-v1)*(x-x1)+(v3-v1)*(y-y1)+(v1-v2-v3+v4)*(x-x1)*(y-y1); 
    5         //printf("x1=%f ; y1=%f ; x=%f ; y=%f ; u1=%f ; v1=%f ; u2=%f ; v2=%f ; u3=%f ; v3=%f ; u4=%f ; v4=%f\n",x1,y1,x,y,u1,v1,u2,v2,u3,v3,u4,v4); 
     3        YS1=u1 + (u2-u1)*(x-x1u)+(u3-u1)*(y-y1u)+(u1-u2-u3+u4)*(x-x1u)*(y-y1u); 
     4        YS2=v1 + (v2-v1)*(x-x1v)+(v3-v1)*(y-y1v)+(v1-v2-v3+v4)*(x-x1v)*(y-y1v); 
     5         
    66        //printf("u1=%f ; u2=%f\n",u1,u2); 
    77        //printf("urd1=%f\n",YS1); 
     
    99 
    1010 
    11 backward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1, YREAL x2, YREAL x3, YREAL x4, YREAL y1, YREAL y2, YREAL y3, YREAL y4, YREAL x, YREAL y) 
     11backward(YREAL u1, YREAL u2, YREAL u3, YREAL u4, YREAL v1, YREAL v2, YREAL v3, YREAL v4, YREAL x1u, YREAL x2u, YREAL x3u, YREAL x4u, YREAL y1u, YREAL y2u, YREAL y3u, YREAL y4u, YREAL x1v, YREAL x2v, YREAL x3v, YREAL x4v, YREAL y1v, YREAL y2v, YREAL y3v, YREAL y4v, YREAL x, YREAL y) 
    1212 
    1313{ 
    14         YJ1I1 = YJ2I5 = 1 - (x-x1) - (y-y1) + (x-x1)*(y-y1); 
    15         YJ1I2 = YJ2I6 = (x-x1)-(x-x1)*(y-y1); 
    16         YJ1I3 = YJ2I7 = (y-y1)-(x-x1)*(y-y1); 
    17         YJ1I4 = YJ2I8 = (x-x1)*(y-y1); 
    18         YJ1I17=(u2-u1)+(u1-u2-u3+u4)*(y-y1); 
    19         YJ1I18=(u3-u1)+(u1-u2-u3+u4)*(x-x1); 
    20         YJ2I17=(v2-v1)+(v1-v2-v3+v4)*(y-y1); 
    21         YJ2I18=(v3-v1)+(v1-v2-v3+v4)*(x-x1); 
     14        YJ1I1 = 1 - (x-x1u) - (y-y1u) + (x-x1u)*(y-y1u); 
     15        YJ2I5 = 1 - (x-x1v) - (y-y1v) + (x-x1v)*(y-y1v); 
     16        YJ1I2 = (x-x1u)-(x-x1u)*(y-y1u); 
     17        YJ2I6 = (x-x1v)-(x-x1v)*(y-y1v); 
     18        YJ1I3 = (y-y1u)-(x-x1u)*(y-y1u); 
     19        YJ2I7 = (y-y1v)-(x-x1v)*(y-y1v); 
     20        YJ1I4 = (x-x1u)*(y-y1u); 
     21        YJ2I8 = (x-x1v)*(y-y1v); 
     22        YJ1I25=(u2-u1)+(u1-u2-u3+u4)*(y-y1u); 
     23        YJ1I26=(u3-u1)+(u1-u2-u3+u4)*(x-x1u); 
     24        YJ2I25=(v2-v1)+(v1-v2-v3+v4)*(y-y1v); 
     25        YJ2I26=(v3-v1)+(v1-v2-v3+v4)*(x-x1v); 
    2226        } 
Note: See TracChangeset for help on using the changeset viewer.