FUNCTION findlineandpointtype, sectype, xaxis, yaxis, iodir ; the file 'HOPE_lonlat.nc' is used in this function, This file must ; be localized in iodir ; netcdf HOPE_lonlat { ; dimensions: ; latTlow = 242 ; ; lonTlowodd = 128 ; ; latThigh = 390 ; ; lonThighodd = 256 ; ; variables: ; float latTlow(latTlow) ; ; latTlow:units = "degrees_north" ; ; float lonTlowodd(lonTlowodd) ; ; lonTlowodd:units = "degrees_east" ; ; lonTlowodd:point_spacing = "even" ; ; lonTlowodd:modulo = " " ; ; float latThigh(latThigh) ; ; latThigh:units = "degrees_north" ; ; float lonThighodd(lonThighodd) ; ; lonThighodd:units = "degrees_east" ; ; lonThighodd:point_spacing = "even" ; ; lonThighodd:modulo = " " ; ; } ; compile_opt idl2, strictarrsubs ; jpi = n_elements(xaxis) jpj = n_elements(yaxis) ; ; depermination of the grid type and of the point type ; ; low resolution grid: jpi=128, jpj=121 ( x 2), jpk=20 ; ; 0. 1.4 2.8 4.2 5.6 ; odd T u T u 93.3 ; even T u T u 92.2 ; odd T u T u 91.1 ; even T u T u 90.0 ; ; ; high resolution grid: jpi=256, jpj=195 ( x 2), jpk=29 ; ; 0. 0.7 1.4 2.1 2.8 ; odd T u T u 91.6 ; even T u T u 91.0 ; odd T u T u 90.5 ; even T u T u 90.0 ; ; x0 = floor(xaxis[0]*10)/10. y0 = floor(yaxis[0]*10)/10. case sectype of 'xy':BEGIN if (jpi NE 128 and jpi NE 256) $ OR (jpj NE 121 AND jpj NE 121*2 AND jpj NE 195 AND jpj NE 195*2) then begin print, 'CASE NOT coded...' stop ENDIF case 1 of jpj EQ 195: BEGIN case X0 OF 0:BEGIN line = 'even' vargrid = 'T' END 0.7:BEGIN case y0 OF 91.6:BEGIN line = 'odd' vargrid = 'T' END 91.0:BEGIN line = 'even' vargrid = 'U' END ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 1.4:BEGIN line = 'odd' vargrid = 'U' END endcase END jpj EQ 121:BEGIN case x0 OF 0:BEGIN line = 'even' vargrid = 'T' END 1.4:BEGIN case y0 OF 93.3:BEGIN line = 'odd' vargrid = 'T' END 92.2:BEGIN line = 'even' vargrid = 'U' END ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 2.8:BEGIN line = 'odd' vargrid = 'U' END endcase END jpj EQ 195*2:BEGIN line = 'odd-even' case x0 OF 0.7:vargrid = 'T' 1.4:vargrid = 'U' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END jpj EQ 121*2:BEGIN line = 'odd-even' case x0 OF 1.4:vargrid = 'T' 2.8:vargrid = 'U' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 'xz':BEGIN if (jpi NE 128 and jpi NE 256) then begin print, 'CASE NOT coded...' stop ENDIF case X0 OF 0:BEGIN line = 'even' vargrid = 'T' END 0.7:BEGIN id = ncdf_open(iodir+'HOPE_lonlat.nc') ncdf_varget, id, 'latThigh', lat test = (where(lat EQ yaxis[0]))[0] if test EQ -1 then begin print, 'CASE NOT coded...' stop endif IF (test MOD 2) EQ 1 THEN BEGIN line = 'even' vargrid = 'U' ENDIF ELSE BEGIN line = 'odd' vargrid = 'T' ENDELSE ncdf_close, id END 1.4:BEGIN if jpi EQ 128 then begin id = ncdf_open(iodir+'HOPE_lonlat.nc') ncdf_varget, id, 'latTlow', lat test = (where(lat EQ yaxis[0]))[0] if test EQ -1 then begin print, 'CASE NOT coded...' stop endif IF (test MOD 2) EQ 1 THEN BEGIN line = 'even' vargrid = 'U' ENDIF ELSE BEGIN line = 'odd' vargrid = 'T' ENDELSE ncdf_close, id ENDIF ELSE BEGIN line = 'odd' vargrid = 'U' ENDELSE END 2.8:BEGIN line = 'odd' vargrid = 'U' END endcase END 'yz':BEGIN if (jpj NE 121 AND jpj NE 195) then begin print, 'CASE NOT coded...' stop ENDIF id = ncdf_open(iodir+'HOPE_lonlat.nc') case y0 of 93.3:BEGIN line = 'odd' ncdf_varget, id, 'lonTlowodd', lonTodd xstep = (lonTodd[1]-lonTodd[0])/2. case 1 OF (where(lonTodd EQ xaxis[0]))[0] NE -1:vargrid = 'T' (where(lonTodd+xstep EQ xaxis[0]))[0] NE -1:vargrid = 'U' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 92.2:BEGIN line = 'even' ncdf_varget, id, 'lonTlowodd', lonTodd xstep = (lonTodd[1]-lonTodd[0])/2. case 1 OF (where(lonTodd EQ xaxis[0]))[0] NE -1:vargrid = 'U' (where(lonTodd-xstep EQ xaxis[0]))[0] NE -1:vargrid = 'T' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 91.6:BEGIN line = 'odd' ncdf_varget, id, 'lonThighodd', lonTodd xstep = (lonTodd[1]-lonTodd[0])/2. case 1 OF (where(lonTodd EQ xaxis[0]))[0] NE -1:vargrid = 'T' (where(lonTodd+xstep EQ xaxis[0]))[0] NE -1:vargrid = 'U' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END 91.0:BEGIN line = 'even' ncdf_varget, id, 'lonThighodd', lonTodd xstep = (lonTodd[1]-lonTodd[0])/2. case 1 OF (where(lonTodd EQ xaxis[0]))[0] NE -1:vargrid = 'U' (where(lonTodd-xstep EQ xaxis[0]))[0] NE -1:vargrid = 'T' ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase END ELSE:BEGIN print, 'CASE NOT coded...' stop END endcase ncdf_close, id END else:BEGIN print, 'case not coded' stop END endcase return, {linetype:line, pointtype:vargrid} end