1 | load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl" |
---|
2 | load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl" |
---|
3 | load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" |
---|
4 | load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/shea_util.ncl" |
---|
5 | |
---|
6 | ; ================================================; |
---|
7 | begin |
---|
8 | |
---|
9 | PATH1 = "./" |
---|
10 | PATH2 = "./" |
---|
11 | |
---|
12 | ;-------------------------------------------- |
---|
13 | ;--- Source and Target grid Files |
---|
14 | ;-------------------------------------------- |
---|
15 | print("Source grid "+srcgridfile) |
---|
16 | print("Target grid "+tgtgridfile) |
---|
17 | |
---|
18 | ;-------------------------------------------- |
---|
19 | ;--- Coordinate names |
---|
20 | ;-------------------------------------------- |
---|
21 | srcgrdlonini = srcgridini+"_lon" |
---|
22 | srcgrdlatini = srcgridini+"_lat" |
---|
23 | srcgrdcloini = srcgridini+"_clo" |
---|
24 | srcgrdclaini = srcgridini+"_cla" |
---|
25 | srcgrdmskini = srcgridini+"_msk" |
---|
26 | tgtgrdlonini = tgtgridini+"_lon" |
---|
27 | tgtgrdlatini = tgtgridini+"_lat" |
---|
28 | tgtgrdcloini = tgtgridini+"_clo" |
---|
29 | tgtgrdclaini = tgtgridini+"_cla" |
---|
30 | tgtgrdmskini = tgtgridini+"_msk" |
---|
31 | ; |
---|
32 | srcgrdlonend = srcgridend+"_lon" |
---|
33 | srcgrdlatend = srcgridend+"_lat" |
---|
34 | srcgrdcloend = srcgridend+"_clo" |
---|
35 | srcgrdclaend = srcgridend+"_cla" |
---|
36 | srcgrdmskend = srcgridend+"_msk" |
---|
37 | tgtgrdlonend = tgtgridend+"_lon" |
---|
38 | tgtgrdlatend = tgtgridend+"_lat" |
---|
39 | tgtgrdcloend = tgtgridend+"_clo" |
---|
40 | tgtgrdclaend = tgtgridend+"_cla" |
---|
41 | tgtgrdmskend = tgtgridend+"_msk" |
---|
42 | |
---|
43 | ;-------------------------------------------- |
---|
44 | ;--- Output Files |
---|
45 | ;-------------------------------------------- |
---|
46 | grids = PATH2+"grids_und.nc" ; File with the source and target grids |
---|
47 | masks = PATH2+"masks_und.nc" ; File with the source and target masks |
---|
48 | |
---|
49 | ;-------------------------------------------- |
---|
50 | ;--- Cleaning: remove any pre-existing file |
---|
51 | ;-------------------------------------------- |
---|
52 | system("/bin/rm -f "+grids) |
---|
53 | system("/bin/rm -f "+masks) |
---|
54 | |
---|
55 | ;------------------------------------------------------------ |
---|
56 | ;--- read the data of each model and write the output files |
---|
57 | ;------------------------------------------------------------ |
---|
58 | |
---|
59 | fi1 = addfile(srcgridfile,"r") |
---|
60 | fi2 = addfile(tgtgridfile,"r") |
---|
61 | |
---|
62 | fo1 = addfile(grids,"c") |
---|
63 | fo1@creation_date=systemfunc("date") |
---|
64 | fo1@title="Training OASIS3-MCT CERFACS" |
---|
65 | |
---|
66 | fo2 = addfile(masks,"c") |
---|
67 | fo2@creation_date=systemfunc("date") |
---|
68 | fo2@title="Training OASIS3-MCT CERFACS" |
---|
69 | |
---|
70 | fo1->$srcgrdlonend$=fi1->$srcgrdlonini$ |
---|
71 | fo1->$srcgrdlatend$=fi1->$srcgrdlatini$ |
---|
72 | fo1->$srcgrdcloend$=fi1->$srcgrdcloini$ |
---|
73 | fo1->$srcgrdclaend$=fi1->$srcgrdclaini$ |
---|
74 | |
---|
75 | fo1->$tgtgrdlonend$=fi2->$tgtgrdlonini$ |
---|
76 | fo1->$tgtgrdlatend$=fi2->$tgtgrdlatini$ |
---|
77 | fo1->$tgtgrdcloend$=fi2->$tgtgrdcloini$ |
---|
78 | fo1->$tgtgrdclaend$=fi2->$tgtgrdclaini$ |
---|
79 | |
---|
80 | ;--- In the initial files, the mask is 1 for valid points (ocean) and 0 for masked points (land) |
---|
81 | ;--- For OASIS3-MCT, it is necessary to have 0 for valid points (ocean) and 1 for masked points (land) (old convention) |
---|
82 | |
---|
83 | srcmsk=fi1->$srcgrdmskini$ |
---|
84 | tgtmsk=fi2->$tgtgrdmskini$ |
---|
85 | |
---|
86 | fo2->$srcgrdmskend$=1-srcmsk |
---|
87 | fo2->$tgtgrdmskend$=1-tgtmsk |
---|
88 | |
---|
89 | end |
---|