#!/bin/csh
set IO = `basename $0`
#
#------------------------------------------------------- Fortran Code ---------
cat >! ${IO}.f << FINEF90
	use chymdata , only : chymreadrec,nlon,nlat,mchym,rchym,schym
	implicit none
	character title*32,vsource*50 ; integer idate,i,j
	real , allocatable , dimension(:,:) :: chymf
	open(10,file='$HOME/tmp/Po.chym',status='old',form='unformatted')
	call chymheader(10) ; allocate(chymf(nlon,nlat))
	call chymreadrec(10,'dra',vsource,chymf,idate)
	close(10)
	do i=1,nlon ; do j=1,nlat
	   if (chymf(i,j).lt.100) then
	      chymf(i,j)=-9999
	   else
	      chymf(i,j)=chymf(i,j)*0.001-30
	   endif
	enddo ; enddo
	call setplotframe(rchym(1),rchym(3),rchym(2),rchym(4),1)
	call chymplotdiff(chymf,nlon,nlat,'ac5LlM50T10')
	call setplotframe(rchym(1),rchym(3),rchym(2),rchym(4),2)
	call chymplotdiff(chymf,nlon,nlat,'ac5LlM10T11')
	call setplotframe(rchym(1),rchym(3),rchym(2),rchym(4),3)
	call chymplotdiff(chymf,nlon,nlat,'ac5LlM50T12')
	call setplotframe(rchym(1),rchym(3),rchym(2),rchym(4),4)
	call chymplotdiff(chymf,nlon,nlat,'ac5LlM40T14')
	call displayexample('$IO','chymplotdiff options',' ')
	end

	subroutine setplotframe(slon,elon,slat,elat,flag)
	implicit none
	real slon,elon,slat,elat,xc,yc,ds ; integer flag
	ds=0.35
	if (flag.eq.1) then
	   xc=0.25 ; yc=0.72
	else if (flag.eq.2) then
	   xc=0.75 ; yc=0.72
	else if (flag.eq.3) then
	   xc=0.25 ; yc=0.28
	else
	   xc=0.75 ; yc=0.28
	endif
	call setgeobounds(slon,elon,slat,elat,xc,yc,ds)
	return
	end
FINEF90
set LOGF = "true" 
set LOGF = "false" 

goto chkplatf 
retchkplatf:

if ( -f $IO.exe ) /bin/rm $IO.exe
f90 $OPTION -o $IO.exe $IO.f $JETNET $MVLIB $NCARLIB $X11LIB >&! fortran.log

if ( ! -x $IO.exe ) then
      echo " ${IO}: cannot find $IO.exe "
      echo "    This is the log for compilation:"
      echo "******************************************************************"
      cat fortran.log
      echo "******************************************************************"
      goto CANCELLA
else if ( $LOGF == "true" ) then
      cat fortran.log
      echo " Running $IO.exe"
endif

./$IO.exe

CANCELLA:
if  ( $LOGF == "true" ) echo " Removing all tmp files."
foreach FILE ( $IO.exe gmeta core $IO.log fortran.log \
               gifmerge.log ${IO}common.f CONDRV.SCR tbl.tmp )
   if ( -f $FILE) /bin/rm $FILE
end
if  ( $LOGF == "true" ) echo " Done."
exit

chkplatf:
set CHKSEL = "${?IO}"
if ( $CHKSEL == 0 ) set IO = `basename $0`
set CHKSEL = "${?SELCOMP}"
if ( $CHKSEL == 0 ) set SELCOMP = "nocomp"

set X11LIB = " -lX11 -lm "
if ( $SELCOMP == "nocomp" ) then
else if ( $SELCOMP == "pgf90" ) then
   if ( ! -X ${SELCOMP} ) then
      echo " ${IO}: ${SELCOMP} non available on this system. Exiting..."
      exit
   endif
   alias f90 pgf90 ; set COMP = "pgf90"
   set OPTION = '-silent -Mextend -byteswapio'
   set IPLATF = 5
   goto retchkplatf
else if ( $SELCOMP == "ifort" ) then
   if ( ! -X ${SELCOMP} ) then
      echo " ${IO}: ${SELCOMP} non available on this system. Exiting..."
      exit
   endif
   alias f90 ifort ; set COMP = "ifort"
   set OPTION = '-O2 -extend-source -convert big_endian'
   set IPLATF = 5
   goto retchkplatf
else if ( $SELCOMP == "gfortran" ) then
   if ( ! -X ${SELCOMP} ) then
      echo " ${IO}: ${SELCOMP} non available on this system. Exiting..."
      exit
   endif
   alias f90 gfortran ; set COMP = "gfortran"
   set OPTION = '-ffixed-line-length-132 -fconvert=big-endian -w -Wno-tabs -O2'
   set IPLATF = 5
   goto retchkplatf
else
   echo " ${IO}: compiler ${SELCOMP} not available on this machine, exiting..."
   exit
endif
set COMP = "f90"
if ( `uname -a | grep alpha  | wc -l` > 0 ) then
    set OPTION = ' -convert big_endian -extend_source'
    set IPLATF = 1
else if ( `uname -a | grep SunOS  | wc -l` > 0 ) then
    set OPTION = ' -silent -e'         #  -silent is unknown for f90
    set OPTION = ' -e'
    set IPLATF = 2
else if ( `uname -a | grep IRIX64 | wc -l` > 0 ) then
#   set OPTION = ' -n32 -pfa -mpio -mp -Ofast '
    set OPTION = ' -n32 -Ofast -extend_source'
    set IPLATF = 3
else if ( `uname -a | grep AIX  | wc -l` > 0 ) then
    set OPTION = ' -q64 '
    set AROPT  = ' -X 64 '
    set IPLATF = 4
    echo " Preprocessing source files for IBM AIX Platform."
    ./ibmsources
    set FILES = `ls *.f`
    foreach FILE ( $FILES )
       ./ibmsources.exe $FILE
    end
    /bin/rm ./ibmsources.exe
    alias f90 xlf
    set COMP = "xlf"
else if ( `uname -a | grep Linux  | wc -l` > 0 ) then
    if ( -X gfortran ) then
       alias f90 gfortran ; set COMP = "gfortran"
       set OPTION = \
           ' -ffixed-line-length-132 -fconvert=big-endian -w -Wno-tabs -O2'
#      set NOLTIME = 'true'
    else if ( -X ifort ) then
       alias f90 ifort ; set COMP = "ifort"
       set OPTION = ' -O2 -extend-source -convert big_endian'
    else if ( -X pgf90 ) then
       alias f90 pgf90 ; set COMP = "pgf90"
       set OPTION = ' -silent -Mextend -byteswapio '
    endif
    set IPLATF = 5
else
    echo " Unknown HW/SW Platform. Exiting ..."
    exit
endif
#                                       Alla ricerca delle ncarlib
set NCARLIB = ' '
foreach JDIR ( /usr/lib /usr/local/lib /usr/local/ncarg /usr/local/ncarg/lib \
               $HOME/../verdecch/ncarg/lib/ $HOME/ncarg $HOME/ncarg/lib \
               ./ncarg ./ncarg/lib )
   if ( -f $JDIR/libncarg.a ) then 
      set NCARLIB  = " -L$JDIR -lncarg -lncarg_gks -lncarg_c "
      setenv NCARG_ROOT $JDIR 
   endif
end

#					Alla ricerca delle mvlib
set MVLIB = " "
if ( -f /usr/local/lib/libmv.a )                                                   set MVLIB = " -L/usr/local/lib -lmvgraf -lncaruti -lmv"
if ( -f ./libmv.a )              set MVLIB = " -L. -lmvgraf -lncaruti -lmv"
if ( -f /usr/local/ncarg/lib/libmv.a )                                             set MVLIB = " -L/usr/local/ncarg/lib -lmvgraf -lncaruti -lmv"
if ( -f $HOME/../verdecch//mvlib/lib/$IPLATF/libmv.a )                            set MVLIB = " -L$HOME/../verdecch//mvlib/lib/$IPLATF/ -lmvgraf -lncaruti -lmv"
if ( -f $HOME/mvlib/lib/$IPLATF/libmv.a )                                           set MVLIB = " -L$HOME/mvlib/lib/$IPLATF/ -lmvgraf -lncaruti -lmv"
if ( -f ./libchym.a ) set MVLIB = " -L. -lchym "
set JETNET = ' '
foreach JDIR ( $HOME/../verdecch/mvlib/lib/$IPLATF /usr/local/lib \
               /usr/lib $HOME/mvlib/lib/$IPLATF )
   if ( -f $JDIR/libjetnet20.a ) set JETNET = " -L$JDIR -ljetnet20"
   if ( -f $JDIR/jetnet20.a ) set JETNET = " $JDIR/jetnet20.a"
end
goto retchkplatf