function gd (args)

caso=subwrd(args,1)
if (caso='-h')
  say ' '
  say ' usage:'
  say ' GetData [caso] [epoca] [casestudy] [mean]'
  say ' '
  say ' default: caso=MONAN ; epoca=1 ; casestudy='ZCAS' ; mean=no'
  say ' '
  return
endif

if (caso='') ; caso='MONAN' ; endif
epoca=subwrd(args,2)
if (epoca='') ; epoca=1 ; endif
casestudy=subwrd(args,3)
if (casestudy='') ; casestudy='ZCAS' ; endif
mean=subwrd(args,4)
if (mean='') ; mean='no' ; endif

say ' caso = 'caso'  epoca = 'epoca'  casestudy = 'casestudy'  mean = 'mean

* This procedure produce individual files for zonal wind (m/s), meridional wind (m/s), 
* absolute temperature (K), especific humidity (kg/kg) and geopotential height (m) 
* in netcdf format

* Getting datei (initial datei - icn)
* datef (forecast date) (if initial condition or reanalysis datei=datef) 
* for the caso defined by epoca
op=1
'run ../Config/Case_Dates.gs 'caso' 'epoca' 'casestudy' 'mean' 'op
filecsdt='./Case_Dates.dgs'
rec=read(filecsdt)
lrec=sublin(rec,2)
datei=subwrd(lrec,2)
datef=subwrd(lrec,3)
prev=subwrd(lrec,4)
csvm=subwrd(lrec,5)
rec=close(filecsdt)
'!rm -f 'filecsdt
say ' '
say ' caso = 'caso'   datei = 'datei'    datef = 'datef

* Getting dirout to output the interpolated fields
filedir='../Config/Config_Dir'
nro=14
n=1
while (n <= 4)
  rec=read(filedir)
  lrec=sublin(rec,2)
  test=substr(lrec,1,nro)
  if (subwrd(test,2)='dirdata') ; break ; endif
  n=n+1
endwhile
rec=close(filedir)
nrec=math_strlen(lrec)
dirdata=substr(lrec,nro+2,nrec-nro-1)
dirout=dirdata'/Data_Pressure/'
say ' '
say ' dirout = 'dirout

mh='jan feb mar apr may jun jul aug sep oct nov dec'
yy=substr(datef,1,4)
mm=substr(datef,5,2)
dd=substr(datef,7,2)
hh=substr(datef,9,2)
ms=subwrd(mh,mm)
dateg=hh'z'dd''ms''yy

say ' '
say ' dateg = 'dateg

* Getting the resolution of input data: Idim, Jdim, ko, km
* Getting the name of variables of input data: uv, vv, tp, sh, zg
* Getting the directory and the name of the file that contains de input data:
*         dirin, filein and sdf (no for ctl file, yes for netcdf file)
say 'run ../Config/Case_Data.gs 'caso' 'datei' 'datef' 'prev' 'casestudy' 'mean
'run ../Config/Case_Data.gs 'caso' 'datei' 'datef' 'prev' 'casestudy' 'mean
filecsdat='./Case_Data.dgs'
rec=read(filecsdat)
lrec=sublin(rec,2)
Idim=subwrd(lrec,1)
Jdim=subwrd(lrec,2)
ko=subwrd(lrec,3)
km=subwrd(lrec,4)
uv=subwrd(lrec,9)
vv=subwrd(lrec,10)
tp=subwrd(lrec,11)
sh=subwrd(lrec,12)
zg=subwrd(lrec,13)
sdf=subwrd(lrec,14)
rec=read(filecsdat)
lrec=sublin(rec,2)
dirin=subwrd(lrec,1)
rec=read(filecsdat)
lrec=sublin(rec,2)
filein=subwrd(lrec,1)
rec=close(filecsdat)
'!rm -f 'filecsdat
say ' '
say ' Idim = 'Idim'   Jdim = 'Jdim'   ko = 'ko'   km = 'km
say ' uv = 'uv'  vv = 'vv'  tp = 'tp'  sh = 'sh'  zg = 'zg
say ' dirin = 'dirin
say ' sdf = 'sdf'   filein = 'filein

* Same input data has undesirable levels, then take levels from ko to km
* Example: BAMH has the first level as 1020 hPa and 33 in total in their 
*          postprocessing file, then to keep only from 1000 hPa (second
*          level) to top (3 hPa) set ko=2 and km=33, then klev=32
klev=km-ko+1
say ' '
say ' ko = 'ko'   km = 'km'   klev= 'klev

* Setting File Out Name
filedat=dirout''caso''datei''datef'.'

say ' '
say '   dirin = 'dirin
say '  dirout = 'dirout
say '  filein = 'filein
say ' filedat = 'filedat

* Open Input Data File
'reinit'
if (sdf = 'yes')
  'sdfopen 'dirin''filein
else
  'open 'dirin''filein
endif
lerr=sublin(result,2)
err=subwrd(lerr,2)
err=substr(err,1,5)
if (err='Error')
  say ' '
  say ' 'filein
  say ' '
  return
endif
say ' '

nvar=5
lvari=''uv' 'vv' 'tp' 'sh' 'zg''
lvaro='uvel vvel temp umes zgeo'
lunit='m/s m/s K kg/kg m'

nv=1
while (nv <= 5)
  vari=subwrd(lvari,nv)
  varo=subwrd(lvaro,nv)
  unit=subwrd(lunit,nv)
  file=filedat''varo'.nc'
  say ' '
  say ' 'nv' : 'file
  '!rm -f 'file
  'set sdfwrite -4d -flt 'file
  'set sdfattr 'varo' String units 'unit
  'set x 1 'Idim
  'set y 1 'Jdim
  'set z 'ko' 'km
  'set time 'dateg
  'define 'varo'='vari
  'sdfwrite 'varo
  'clear sdfwrite'
   nv=nv+1
endwhile

return
