1 | ; |
---|
2 | ; make divergence of vector field |
---|
3 | ; |
---|
4 | FUNCTION make_wdiv, file_name, ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ZMTYP = zmtyp, ALL_DATA = all_data |
---|
5 | |
---|
6 | @common |
---|
7 | @com_eg |
---|
8 | ; |
---|
9 | IF debug_w THEN print, ' ENTER make_wdiv... ' |
---|
10 | |
---|
11 | var_name1 = (strsplit(macro_base_fld, ',', ESCAPE = ' ', /EXTRACT))[0] |
---|
12 | var_name2 = (strsplit(macro_base_fld, ',', ESCAPE = ' ', /EXTRACT))[1] |
---|
13 | |
---|
14 | ; Build file_name2 if different |
---|
15 | |
---|
16 | IF strpos (cmd1_back.grid, '#') NE -1 THEN BEGIN |
---|
17 | varpos = strpos(file_name, var_name1) |
---|
18 | file_name2= strmid(file_name, 0, varpos)+var_name2+'.nc' |
---|
19 | IF debug_w THEN print, ' file_name2 = ', file_name2 |
---|
20 | ENDIF ELSE file_name2 = file_name |
---|
21 | |
---|
22 | ; |
---|
23 | ; Read the variables in the correspondent netcdf file |
---|
24 | var_x = nc_read(file_name, var_name1, ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2) |
---|
25 | var_y = nc_read(file_name2, var_name2, ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2) |
---|
26 | |
---|
27 | ; TO DO: ORCA grid C case |
---|
28 | ; vargrid = 'U' |
---|
29 | ; new_file = new_filename(file_name, 'T', vargrid) |
---|
30 | ; taux = nc_read(new_file,'sozotaux', ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ALL_DATA = all_data) |
---|
31 | ; vargrid = 'V' |
---|
32 | ; new_file = new_filename(file_name, 'T', vargrid) |
---|
33 | ; tauy = nc_read(new_file,'sometauy', ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ALL_DATA = all_data) |
---|
34 | |
---|
35 | ; for ORCA C grid wdiv = div(var_x, var_y) |
---|
36 | |
---|
37 | grille,mask,glam,gphi,gdep,nx,ny,nz,premierx,premiery,premierz,dernierx,derniery,dernierz |
---|
38 | wdiv = (var_x.data - shift(var_x.data, -1, 0))/e1t[premierx:dernierx, premiery:derniery] + (var_y.data-shift(var_y.data, 0, -1))/e2t[premierx:dernierx, premiery:derniery] |
---|
39 | |
---|
40 | field = {name: '', data: wdiv, legend: '', units: '', origin: '', dim: 0, direc:''} |
---|
41 | |
---|
42 | field.origin = var_x.origin |
---|
43 | field.dim = var_x.dim |
---|
44 | field.direc = var_x.direc |
---|
45 | |
---|
46 | return, field |
---|
47 | END |
---|