1 | forward (YREAL xu_d, YREAL uij, YREAL uip1j, YREAL uijp1, YREAL uijm1, YREAL uim1j, YREAL vij, YREAL vip1jm1, YREAL vijm1, YREAL vip1j, YREAL c1, YREAL c2,YREAL c3,YREAL c4,YREAL c5,YREAL c6,YREAL c7,YREAL c8,YREAL c9,YREAL mask) |
---|
2 | { |
---|
3 | |
---|
4 | if (Yt==1) { //first step time |
---|
5 | //if (Yt<1000000) { //first step time |
---|
6 | YS1=xu_d; |
---|
7 | //printf("ucd0=%f \n",YS1); |
---|
8 | } |
---|
9 | else |
---|
10 | { |
---|
11 | /* Boundary condition ? |
---|
12 | if(Yi==0 || Yi==nlon-1 || Yj==0 || Yj==nlat-1) |
---|
13 | */ |
---|
14 | //Example: a weighted mean |
---|
15 | YS1=uij + dtfil*mask*(c1*uij + c2*uip1j + c3*uijp1 + c4*uijm1 + c5*uim1j + c6*vij + c7*vip1jm1 + c8*vijm1 + c9*vip1j); |
---|
16 | // printf("ucd=%f \n",YS1); |
---|
17 | } |
---|
18 | } |
---|
19 | |
---|
20 | |
---|
21 | backward (YREAL xu_d, YREAL uij, YREAL uip1j, YREAL uijp1, YREAL uijm1, YREAL uim1j, YREAL vij, YREAL vip1jm1, YREAL vijm1, YREAL vip1j, YREAL c1, YREAL c2,YREAL c3,YREAL c4,YREAL c5,YREAL c6,YREAL c7,YREAL c8,YREAL c9,YREAL mask){ |
---|
22 | /* |
---|
23 | if (Yi==9 && Yj==16) |
---|
24 | { |
---|
25 | printf("YG=%g\n",YG1_u_d(Yi,Yj)); |
---|
26 | } |
---|
27 | */ |
---|
28 | |
---|
29 | |
---|
30 | |
---|
31 | if (Yt==1) { //first step time |
---|
32 | // if (Yt<1000000) { //first step time |
---|
33 | YJ1I1=1; |
---|
34 | } |
---|
35 | else |
---|
36 | { |
---|
37 | YJ1I2=1+c1*mask*dtfil; |
---|
38 | YJ1I3=c2*mask*dtfil; |
---|
39 | YJ1I4=c3*mask*dtfil; |
---|
40 | YJ1I5=c4*mask*dtfil; |
---|
41 | YJ1I6=c5*mask*dtfil; |
---|
42 | YJ1I7=c6*mask*dtfil; |
---|
43 | YJ1I8=c7*mask*dtfil; |
---|
44 | YJ1I9=c8*mask*dtfil; |
---|
45 | YJ1I10=c9*mask*dtfil; |
---|
46 | } |
---|
47 | |
---|
48 | } |
---|
49 | |
---|
50 | |
---|
51 | |
---|