#!/bin/sh

set +x
#####################################################################
echo "----------------------------------------------------------"
echo "makebogus - Script To Run Static Initialization for GFDL. "
echo "----------------------------------------------------------"
echo "History: JAN 1998 - Rewritten by David Michaud to standardize"
echo "                  - Script formerly known as runbogus."
#####################################################################
set -x

cd $DATA/bogus

echo $asym > asetnum

set +x
echo " "
echo "At top of gfdl_pre_mkbogus2.sh, asym = $asym"
echo " "
set -x

cp $DATA/fcst000 fcst000

#
# bring in the asymmetries if the previous forecast is available
#
if [ $asym -eq 1 ]
then

   set +x
   echo
   echo  'link in the 12h forecasted symmetric vortex to compute asymmetries'
   echo
   set -x

   export pgm=gfdl_makeasm
   . prep_step

   ln -s -f mess-$STORMENV-$DATEIN-$HRIN                fort.18
   ln -s -f makeasm.out                                 fort.72
   ln -s -f disturb                                     fort.77

   startmsg
   $EXEChur/gfdl_makeasm >> $pgmout 2> errfile
   export err=$?;err_chk

   set +x
   echo
   echo  'Asymmetries have been computed'
   echo
   set -x
else
   set +x
   echo " "
   echo "In gfdl_pre_mkbogus2.sh, NOT in asym IF, asym = $asym"
   echo " "
   set -x
fi

#--------------------------------------------------------

export pgm=gfdl_rmenvir
. prep_step

ln -s -f fcst000                                     fort.10
ln -s -f mess-$STORMENV-$DATEIN-$HRIN                fort.18
ln -s -f asetnum                                     fort.65
ln -s -f makeasm.out                                 fort.72
ln -s -f env.datain.fcst000                          fort.87
ln -s -f vortex.struc                                fort.88
ln -s -f bogus.info                                  fort.89

startmsg
$EXEChur/gfdl_rmenvir  >>  $pgmout 2> errfile
export err=$?;err_chk

rm fort.87 fort.89

cp $FIXhur/gfdl_huranal.data datain

###################################################################
#   SET UP TO RUN THE AXIS-SYMMETRIC MODEL TO CREATE THE SPECIFIC
#   BOGUS VORTEX DETERMINED FROM THE OBSERVED VALUES OF TAN. WIND
###################################################################
low=22
hig=45
echo 22 45 > lowhigh

export pgm=gfdl_axisymet
. prep_step

cp fcst000 datahis

#  Fort.9 hardwired into program
#  assign -a datahis      fort.9

ln -s -f lowhigh                         fort.3
ln -s -f vortex.struc                    fort.88
ln -s -f vortex.axi                      fort.51
ln -s -f $DATA/quad1-$STORMENV-$DATEIN-$HRIN   fort.75
ln -s -f $DATA/quad2-$STORMENV-$DATEIN-$HRIN   fort.76
ln -s -f $DATA/quad3-$STORMENV-$DATEIN-$HRIN   fort.77
ln -s -f $DATA/quad4-$STORMENV-$DATEIN-$HRIN   fort.78
ln -s -f $DATA/quadsum-$STORMENV-$DATEIN-$HRIN fort.79

startmsg
$EXEChur/gfdl_axisymet < datain >> $pgmout 2> errfile
export err=$?;err_chk

export pgm=gfdl_setini
. prep_step
startmsg

ln -s -f  fcst000                 fort.9
ln -s -f  nest.init               fort.77

$EXEChur/gfdl_setini >> $pgmout 2>errfile
export err=$?;err_chk

#########################################################
#  The bogus vortex is stored on unit 9
#  The NMC field is stored onto unit 55
#  Now put the bogus vortex onto a 3nested field
#########################################################

export pgm=gfdl_chgvortx
. prep_step

ln -s -f  vortex.axi                   fort.9
ln -s -f  makeasm.out                  fort.72
ln -s -f  nest.init                    fort.55
ln -s -f  asetnum                      fort.65
ln -s -f  vortex.struc                 fort.88
ln -s -f  noinit                       fort.77

startmsg
$EXEChur/gfdl_chgvortx  >> $pgmout 2> errfile
export err=$?;err_chk

#########################################################
# THIS IS THE STATIC INITIALIZATION
#########################################################
cp $FIXhur/gfdl_datainp1 datainp1
cp $FIXhur/gfdl_datainp2 datain

export pgm=gfdl_statini
. prep_step
startmsg

ln -s -f  noinit                      fort.9
ln -s -f  a.outset                    fort.22
ln -s -f  geop.full.1                 fort.41
ln -s -f  geop.full.2                 fort.42
ln -s -f  geop.full.3                 fort.43
ln -s -f  geop.half.1                 fort.45
ln -s -f  geop.half.2                 fort.46
ln -s -f  geop.half.3                 fort.47

$EXEChur/gfdl_statini  < datainp1 >> $pgmout 2> errfile
export err=$?;err_chk

export pgm=gfdl_forcsfcp
. prep_step

ln -s -f  noinit                         fort.9
ln -s -f  a.outset                       fort.22
ln -s -f  hisinit                        fort.51
ln -s -f  forcing.1                      fort.71
ln -s -f  forcing.2                      fort.72
ln -s -f  forcing.3                      fort.73
ln -s -f  diverge.static.1               fort.96
ln -s -f  diverge.static.2               fort.97
ln -s -f  diverge.static.3               fort.98

startmsg
$EXEChur/gfdl_forcsfcp < datain >> $pgmout 2> errfile
export err=$?;err_chk

export pgm=gfdl_outsfcp
. prep_step

ln -s -f  a.outset                        fort.22
ln -s -f  geop.full.1                     fort.41
ln -s -f  geop.full.2                     fort.42
ln -s -f  geop.full.3                     fort.43
ln -s -f  geop.half.1                     fort.45
ln -s -f  geop.half.2                     fort.46
ln -s -f  geop.half.3                     fort.47
ln -s -f  hisinit                         fort.51
ln -s -f  forcing.1                       fort.71
ln -s -f  forcing.2                       fort.72
ln -s -f  forcing.3                       fort.73
ln -s -f  vortex.struc                    fort.88
ln -s -f  diverge.static.1                fort.96
ln -s -f  diverge.static.2                fort.97
ln -s -f  diverge.static.3                fort.98
ln -s -f  hissfc                          fort.9

startmsg
$EXEChur/gfdl_outsfcp >> $pgmout 2> errfile
export err=$?;err_chk

export pgm=gfdl_forcgeop
. prep_step

ln -s -f  hissfc                         fort.9
ln -s -f  forcing2.1                     fort.71
ln -s -f  forcing2.2                     fort.72
ln -s -f  forcing2.3                     fort.73
ln -s -f  diverge.geop.1                 fort.96
ln -s -f  diverge.geop.2                 fort.97
ln -s -f  diverge.geop.3                 fort.98

startmsg
$EXEChur/gfdl_forcgeop < datain >> $pgmout 2> errfile
err=$?

export pgm=gfdl_outgeop
. prep_step

ln -s -f  hissfc                         fort.9
ln -s -f  a.outset                       fort.22
ln -s -f  geop.full.1                    fort.41
ln -s -f  geop.full.2                    fort.42
ln -s -f  geop.full.3                    fort.43
ln -s -f  geop.half.1                    fort.45
ln -s -f  geop.half.2                    fort.46
ln -s -f  geop.half.3                    fort.47
ln -s -f  forcing2.1                     fort.71
ln -s -f  forcing2.2                     fort.72
ln -s -f  forcing2.3                     fort.73
ln -s -f  vortex.struc                   fort.88
ln -s -f  diverge.geop.1                 fort.96
ln -s -f  diverge.geop.2                 fort.97
ln -s -f  diverge.geop.3                 fort.98
ln -s -f  histemp                        fort.10

startmsg
$EXEChur/gfdl_outgeop  >> $pgmout 2> errfile
export err=$?;err_chk

export pgm=gfdl_saveini
. prep_step

ln -s -f  fcst000         fort.9
ln -s -f  histemp         fort.10
ln -s -f  new.init        fort.77

startmsg
$EXEChur/gfdl_saveini >> $pgmout 2> errfile
export err=$?;err_chk

##########################################################
# nestno = 3   ---->   3 nest run
# nestno = 2   ---->   2 nest run
##########################################################
if [ $nestno = 2 ]
then
   export pgm=gfdl_mk2nest
   . prep_step

   ln -s -f  new.init     fort.77
   ln -s -f  new.init2    fort.78

   startmsg
   $EXEChur/gfdl_mk2nest >> $pgmout 2> errfile
   export err=$?;err_chk

   mv new.init2 new.init
fi

mv new.init $DATA/fcst000
mv env.datain.fcst000 $DATA/env.datain.fcst000

if test "$SENDCOM" = 'YES'
then
   cp $DATA/fcst000 $COMOUT/$ATCFNAME.hour0
   cp $DATA/env.datain.fcst000 $COMOUT/$ATCFNAME.env.fcst000
fi

cat $DATA/bogus/$pgmout >> $DATA/$pgmout

# rm -rf $DATA/bogus/*
