function main()

_result=0

'set lev 500'

'set t 1'

*anem a buscar les dimensions de la matriu

'q ctlinfo'

k=1

while(cadena != xdef)

 linea=sublin(result,k)

 cadena=substr(linea,1,4)

 k=k+1

 if (k>10)

      say 'error:'k

      break

 endif

endwhile

 

filinia=0

res=buscabusca(linea,2,1,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

xdef=substr(linea,kespai1+1,ncar)

*ja tenim xdef

say 'xdef= 'xdef

* ara anem a buscar X0

 

res=buscabusca(linea,4,3,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

x0=substr(linea,kespai1+1,ncar)

*ja tenim x0

say 'x0= 'x0

*ara anem a buscar dx

 

filinia=1

res=buscabusca(linea,5,4,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

dx=substr(linea,kespai1+1,ncar)

*ja tenim dx

say 'dx= 'dx

 

k=1

while(cadena != ydef)

linea=sublin(result,k)

cadena=substr(linea,1,4)

k=k+1

if (k>10)

      say 'error:'k

      break

endif

endwhile

filinia=0

res=buscabusca(linea,2,1,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

ydef=substr(linea,kespai1+1,ncar)

say 'ydef= 'ydef

 

filinia=0

res=buscabusca(linea,4,3,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

y0=substr(linea,kespai1+1,ncar)

*ja tenim Y0

say 'y0= 'y0

 

filinia=1

res=buscabusca(linea,5,4,filinia)

kespai1=subwrd(res,1)

ncar=subwrd(res,2)

dy=substr(linea,kespai1+1,ncar)

*ja tenim dy

say 'dy= 'dy

nxdef=subwrd(xdef,1)

nx0=subwrd(x0,1)

ndx=subwrd(dx,1)

nydef=subwrd(ydef,1)

ny0=subwrd(y0,1)

ndy=subwrd(dy,1)

 

*ja sabem els valors de Xdef i Ydef. Com estem a 500 hPa, anem a extreure'n la z i gravar-la en

*el fitxer 'zeta500'

*però lo primer que gravarem en el fitxer són les dimensions de la matriu.

res=write('zeta500.txt',nxdef)

res=write('zeta500.txt',nx0)

res=write('zeta500.txt',ndx)

res=write('zeta500.txt',nydef)

res=write('zeta500.txt',ny0)

res=write('zeta500.txt',ndy)

 

'set lev 500'

'set t 1'

fila=1

while(fila<(nydef+1))

'set y ' fila

col=1

while(col<(nxdef+1))

'set x ' col

'd z'

_result=subwrd(result,4)

res = write('zeta500.txt', _result)

status = sublin(res,1)

if(status != 0)

say 'write error #'status

'quit'

endif

col=col+1

endwhile

fila=fila+1

endwhile

res = close('zeta500.txt')

status = sublin(res,1)

if(status != 0)

say 'close error #'status

'quit'

endif

return

 

 

function buscabusca(linea,nespais,primerespai,filinia)

*anem a buscar el valor a través dels espais de la linea

espais=0

k=1

while (espais<nespais)

caracter=substr(linea,k,1)

if (caracter=' ')

 espais=espais+1

 if (espais=primerespai)

  kespai1=k

 endif

endif

if((filinia=1)&(espais=primerespai))

  longitud=strlon(linea)

  ncar=longitud-kespai1

  break          

endif

k=k+1

endwhile

if (filinia=0)

 ncar=k-2-kespai1

endif

return(kespai1' 'ncar)

 

function strlon(linea)

k=1

caracter=substr(linea,k,1)

while(caracter !='')

 k=k+1

 caracter=substr(linea,k,1)

endwhile

return(k-1)