Changeset 136
- Timestamp:
- 06/03/09 16:41:57 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/procs/macros/make_wcurl.pro
r87 r136 1 1 ; 2 ; make Wind Stress curl2 ; make curl of vector field 3 3 ; 4 4 FUNCTION make_wcurl, file_name, ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ZMTYP = zmtyp, ALL_DATA = all_data … … 7 7 @com_eg 8 8 ; 9 IF debug_w THEN print, ' ENTER make_wcurl... ' 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 9 22 ; 10 ; Read taux and tauy 11 ; 12 ;old_boite = [lon1, lon2, lat1, lat2, prof1, prof2] 13 ;domdef 14 vargrid = 'U' 15 new_file = new_filename(file_name, 'T', vargrid) 16 taux = nc_read(new_file,'sozotaux', ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ALL_DATA = all_data) 17 vargrid = 'V' 18 new_file = new_filename(file_name, 'T', vargrid) 19 tauy = nc_read(new_file,'sometauy', ncdf_db, BOXZOOM = boxzoom, TIME_1 = time_1, TIME_2 = time_2, ALL_DATA = all_data) 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) 20 26 21 wcurl = curl(taux.data, tauy.data) 22 ;domdef, old_boite 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 vcurl = curl(var_x, var_y) 36 37 grille,mask,glam,gphi,gdep,nx,ny,nz,premierx,premiery,premierz,dernierx,derniery,dernierz 38 39 zu = var_x.data 40 zv = var_y.data 41 42 43 IF jpt EQ 1 THEN BEGIN 44 wcurl = (shift(zv, -1, 0)-zv)/e1t[premierx:dernierx, premiery:derniery] + (zu-shift(zu, 0, -1))/e2t[premierx:dernierx, premiery:derniery] 45 ENDIF ELSE BEGIN 46 e1t3d = reform(reform(e1t[premierx:dernierx, premiery:derniery], nx*ny)#replicate(1, jpt), nx, ny, jpt) 47 e2t3d = reform(reform(e2t[premierx:dernierx, premiery:derniery], nx*ny)#replicate(1, jpt), nx, ny, jpt) 48 wcurl = (shift(zv, -1, 0, 0)-zv)/e1t3d + (zu-shift(zu, 0, -1, 0))/e2t3d 49 ENDELSE 23 50 24 51 field = {name: '', data: wcurl, legend: '', units: '', origin: '', dim: 0, direc:''} 25 52 26 field.origin = taux.origin27 field.dim = taux.dim28 field.direc = taux.direc53 field.origin = var_x.origin 54 field.dim = var_x.dim 55 field.direc = var_x.direc 29 56 30 57 return, field
Note: See TracChangeset
for help on using the changeset viewer.