Changeset 105
- Timestamp:
- 06/11/13 14:28:57 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
altifloat/src/lapfilu.h
r103 r105 13 13 //Example: a weighted mean 14 14 YS1=c1*fij + c2*fim1j + c3*fip1j + c4*fijm1 + c5*fijp1; 15 } 16 } 15 17 16 }17 }18 18 19 19 backward (YREAL xu_d, YREAL fij, YREAL fim1j, YREAL fip1j, YREAL fijm1, YREAL fijp1) … … 38 38 39 39 } 40 41 42 43 //LLL START 44 forward (YREAL xu_d, YREAL fij, YREAL fim1j, YREAL fip1j, YREAL fijm1, YREAL fijp1, YREAL wij, YREAL wim1j, YREAL wip1j, YREAL wijm1, YREAL wijp1) 45 { 46 47 if (Yt==1) { //first step time 48 YS1=xu_d; 49 } 50 else 51 { 52 /* Boundary condition ? 53 if(Yi==0 || Yi==nlon-1 || Yj==0 || Yj==nlat-1) 54 */ 55 56 //LLL The filter is actually L = I + kp Dt D, where D is the Laplacian Operator, I is the identity matrix, kp is the diffusion coefficient, Dt is the time step. kp*Dt is included in the weight matrix w among possibly other things to be determined soon 57 /* if(Yi==Yj) { 58 YS1 = 1.0 + c1*fij*wij + c2*fim1j*wim1j + c3*fip1j*wip1j + c4*fijm1*wijm1 + c5*fijp1*wijp1; 59 } 60 else 61 { 62 YS1 = c1*fij*wij + c2*fim1j*wim1j + c3*fip1j*wip1j + c4*fijm1*wijm1 + c5*fijp1*wijp1; 63 } 64 } 65 } 66 67 68 backward (YREAL xu_d, YREAL fij, YREAL fim1j, YREAL fip1j, YREAL fijm1, YREAL fijp1, YREAL wij, YREAL wim1j, YREAL wip1j, YREAL wijm1, YREAL wijp1) 69 { 70 71 if (Yi==9 && Yj==16) 72 { 73 printf("YG=%g\n",YG1_u_d(Yi,Yj)); 74 } 75 76 if (Yt==1) { //first step time 77 YJ1I1=1; 78 } 79 else 80 { 81 YJ1I2=c1*wij; 82 YJ1I3=c2*wim1j; 83 YJ1I4=c3*wip1j; 84 YJ1I5=c4*wijm1; 85 YJ1I6=c5*wijp1; 86 YJ1I7=c1*fij; 87 YJ1I8=c2*fim1j; 88 YJ1I9=c3*fip1j; 89 YJ1I10=c4*fijm1; 90 YJ1I11=c5*fijp1; 91 } 92 } 93 */ 94 //LLL end
Note: See TracChangeset
for help on using the changeset viewer.