source: altifloat/src/locate.h @ 199

Last change on this file since 199 was 157, checked in by jbrlod, 9 years ago

small add in the previous commit

File size: 2.5 KB
Line 
1forward(YREAL x, YREAL y)
2{
3        //Yj = longitude
4        //Yk = latitude
5        int j_ll=(int)(x-0.5);
6        int k_ll=(int)y;
7        if (j_ll==Yj && k_ll==Yk)
8        {
9        //printf("j_ll=%d ; k_ll=%d\n",j_ll,k_ll);
10                YS1_uinter(Yi,YTemps)=YS1_utot(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_utot(Yj+1,Yk,YTemps); //uLowerRight
12                YS3_uinter(Yi,YTemps)=YS1_utot(Yj,Yk+1,YTemps); //uUpperLeft
13                YS4_uinter(Yi,YTemps)=YS1_utot(Yj+1,Yk+1,YTemps); //uUpperRight
14               
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_vtot(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_vtot(Yj+1,Yk,YTemps); //vLowerRight
32                YS7_uinter(Yi,YTemps)=YS1_vtot(Yj,Yk+1,YTemps); //vUpperLeft
33                YS8_uinter(Yi,YTemps)=YS1_vtot(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                 
43        }
44}
45
46backward(YREAL x, YREAL y)
47{
48        int j_ll=(int)(x-0.5);
49        int k_ll=(int)y;
50        if (j_ll==Yj && k_ll==Yk)
51        {
52                YG1_utot(Yj,Yk,YTemps)+=YG1_uinter(Yi,YTemps);
53                YG1_utot(Yj+1,Yk,YTemps)+=YG2_uinter(Yi,YTemps);
54                YG1_utot(Yj,Yk+1,YTemps )+=YG3_uinter(Yi,YTemps);
55                YG1_utot(Yj+1,Yk+1,YTemps)+=YG4_uinter(Yi,YTemps);
56        }
57       
58        j_ll=(int)x;
59        k_ll=(int)(y-0.5);
60        if (j_ll==Yj && k_ll==Yk)
61        {
62                YG1_vtot(Yj,Yk,YTemps)+=YG5_uinter(Yi,YTemps);
63                YG1_vtot(Yj+1,Yk,YTemps)+=YG6_uinter(Yi,YTemps);
64                YG1_vtot(Yj,Yk+1,YTemps)+=YG7_uinter(Yi,YTemps);
65                YG1_vtot(Yj+1,Yk+1,YTemps)+=YG8_uinter(Yi,YTemps);
66        }       
67}
Note: See TracBrowser for help on using the repository browser.