#!/bin/sh
#=======================================================================
# Standard implied oceanic heat transport deck          --- heatrans ---
# $Id: heatrans_jobdef 639 2011-02-02 18:29:32Z acrnrls $
#=======================================================================
#     keyword :: heatrans
# description :: implied heat transport calculation
#******************************

  set -a
  . betapath2

#  * ........................... Parmsub Parameters ............................

  # These variables are set when the job string is created
  run_start_year=NotSet
  run_start_month=NotSet
  run_stop_year=NotSet
  run_stop_month=NotSet
  current_year=NotSet
  current_month=NotSet
  previous_year=NotSet
  previous_month=NotSet
  next_year=NotSet
  next_month=NotSet

  year=yyy; mon=mm   # memory99=1

  runid="job000"; uxxx='uxxx'; pool_uxxx=$uxxx; heatrans_uxxx=$pool_uxxx;
  heatrans_prefix="${heatrans_uxxx}_${runid}"    # memory99=1
  heatrans_prefix_=${heatrans_prefix}_           # memory99=1
  crawork="${runid}_job"; username="acrnxxx"; user="XXX";
  RUNID=`echo "${runid}"|tr '[a-z]' '[A-Z]'`;
  nqsprfx="${runid}_"; nqsext='';

  nextjob=on
  noprint=on

  # ---Start_submit_ignore_code----

  stamp=`date "+%j%H%M%S"$$`

  # Use -e option if recognized by echo
  if [ "X`echo -e`" = "X-e" ]; then
    echo_e() { echo ${1+"$@"}; }
  else
    echo_e() { echo -e ${1+"$@"}; }
  fi

  # bail is a simple error exit routine
  # Note: we write the error directly to a file in ~/.queue so that this
  #       info is not lost if/when stdout is not returned
  error_out="$HOME/.queue/error_heatrans_${runid}_$stamp"
  [ ! -z "$error_out" ] && rm -f $error_out
  bail(){
    echo_e `date`" --- heatrans: $*"
    echo_e `date`" --- heatrans: $*" >>$error_out
    exit 1
  }

  # This invocation of make_file_name_list will process the *_year and *_months
  # variables defined above and output a file containing definitions for
  # start_year, start_mon, stop_year, stop_mon
  tmp_file_list="heatrans_date_list_${runid}_${stamp}"
  make_file_name_list --dates_only $tmp_file_list >>$error_out 2>&1 ||\
    bail "Problem in make_file_name_list"
  rm -f $error_out

  # Verify that the output list is not empty
  [ ! -s "$tmp_file_list" ] && bail "Unable to create file list"

  # A file list was created ...source it
  # This will define start_year, start_mon, stop_year, stop_mon
  : ; . $tmp_file_list
  rm -f $tmp_file_list

  # Define start and stop dates
  heatrans_start_year=$start_year
  heatrans_start_mon=$start_mon
  heatrans_stop_year=$stop_year
  heatrans_stop_mon=$stop_mon

  # ym_range is used in the definition of input (model[1-4]) and
  # output (plpfn) file names as well as in the title of most plots.

  # define a range string in the form YYYYmMM_YYYYmMM to be used in file names
  ym_range="${heatrans_start_year}m${heatrans_start_mon}"
  ym_range="${ym_range}_${heatrans_stop_year}m${heatrans_stop_mon}"

  # In the special case that start and stop dates are identical use a YYYY format
  if [ $heatrans_start_year -eq $heatrans_stop_year ]; then
    if [ $heatrans_start_mon -eq $heatrans_stop_mon ]; then
      ym_range=$heatrans_start_year
    fi
  fi

  # resol is used as part of some file names defined here
  resol="128_64";
  case $resol in
     96_48) ocean_mask_file="ubd_basin_96x48" ;;
    128_64) ocean_mask_file="uwl_mhbasin_${resol}" ;;
    192_96) ocean_mask_file="uwl_mhbasin_${resol}" ;;
         *) echo "Unknown resolution $resol"
            exit 1 ;;
  esac

  land_mask="new_mask_${resol}";

  model_prefix=${heatrans_prefix_}${ym_range}
  model1="${model_prefix}_djf_";
  model2="${model_prefix}_mam_";
  model3="${model_prefix}_jja_";
  model4="${model_prefix}_son_";

  obs_ceres="pd_ceres_2d_srbavg1_adj_month_2000_2005_geo_data_scld_${resol}_";
  obs_era="pd_era40_${resol}_198101_200012_ann_";

  day1="WINTER";  day2="SPRING"; day3="SUMMER"; day4="FALL"; days="YEARLY MEAN";

  # ptitle is a common prefix for all plot titles
  ym_range=`echo $ym_range|sed 's/_/-/g'`
  ptitle="$RUNID  $ym_range  YEARLY MEAN"

  shades1="              7  186  183  180  140  105  103  101";
  values1="               -100.      -50.      -0.1      +.01       50.      100.";
  b="  +";

  run=`echo "$model_prefix"|tr '[a-z]' '[A-Z]'`
  plunit="VIC"
  plpfn=$model_prefix
  pldir=''
  dtime="100"; gptime="600"; stime="600";
  lopgm=lopgm;
  memory1="100mb"; memory2="100mb"; memory3="100mb"; 

#  * ............................ Condef Parameters ............................

  noggsave=off
  debug=off
  noprint=on
  nextjob=on

  # ---Stop_submit_ignore_code----

#  * ............................. Deck Definition .............................

#deck heatrans2_era40
  jobname=heatrans2_era40 ; time=$stime ; memory=$memory1
  .   comjcl.cdk

cat > Execute_Script <<'end_of_script'
 
# 
# 
#                 heatrans              B.Denis jan 15/95
#  ------------------------------------ compute annual implied heat transport
# 				       from agcm surface net energy balance
# 				       (beg). it needs beg from each season.
# 				       this computation is done for the global
# 				       ocean as well as for each regional ocean
# 
# 
    libncar plunit=$plunit 
.   plotid.cdk
# 
ccc nogo a=latint 
# 
    access ggw ${model1}gp
    access ggp ${model2}gp
    access ggs ${model3}gp
    access ggf ${model4}gp
#   
    access obw ${obs_ceres}djf
    access obp ${obs_ceres}mam
    access obs ${obs_ceres}jja
    access obf ${obs_ceres}son
#
    access obsera ${obs_era}gp
# 
ccc xfind ggw obegw 
ccc xfind ggp obegp 
ccc xfind ggs obegs 
ccc xfind ggf obegf 
# 
ccc xfind ggw begw 
ccc xfind ggp begp 
ccc xfind ggs begs 
ccc xfind ggf begf 
# 
ccc xfind ggw baltw 
ccc xfind ggp baltp 
ccc xfind ggs balts 
ccc xfind ggf baltf 

ccc xfind ggw resw 
ccc xfind ggp resp 
ccc xfind ggs ress 
ccc xfind ggf resf 
    rm ggw ggp ggs ggf 
#
#
ccc xfind obw obaltw
ccc xfind obp obaltp
ccc xfind obs obalts
ccc xfind obf obaltf
    rm obw obp obs obf
ccc xfind obsera obs_beg_ann

# 
#  ----------------------------- normalize in regard of season length
# 
ccc xlin obegw xobegw 
ccc xlin obegp xobegp 
ccc xlin obegs xobegs 
ccc xlin obegf xobegf 
ccc xlin begw xbegw 
ccc xlin begp xbegp 
ccc xlin begs xbegs 
ccc xlin begf xbegf 
ccc xlin baltw xbaltw 
ccc xlin baltp xbaltp 
ccc xlin balts xbalts 
ccc xlin baltf xbaltf 
ccc xlin resw xresw 
ccc xlin resp xresp 
ccc xlin ress xress 
ccc xlin resf xresf 
ccc xlin obaltw xobaltw 
ccc xlin obaltp xobaltp 
ccc xlin obalts xobalts 
ccc xlin obaltf xobaltf
#
ccc globavg  baltw output=dummy
#ccc rglbavg obaltw output=dummy 
ccc globavg  baltp output=dummy
#ccc rglbavg obaltp output=dummy
ccc globavg  balts output=dummy
#ccc rglbavg obalts output=dummy
ccc globavg  baltf output=dummy
#ccc rglbavg obaltf output=dummy 
#
ccc globavg begw output=dummy
ccc globavg begp output=dummy
ccc globavg begs output=dummy
ccc globavg begf output=dummy
    rm begw begp begs begf 
# 
ccc add xobegw xobegp tempo1 
ccc add tempo1 xobegs tempo2 
ccc add tempo2 xobegf xobega 
ccc globavg xobega output=dummy
    rm tempo1 tempo2 xobegw xobegp xobegs xobegf 
# 
ccc add xbegw xbegp tempo1 
ccc add tempo1 xbegs tempo2 
ccc add tempo2 xbegf xbega 
ccc globavg xbega output=dummy
    rm tempo1 tempo2 xbegw xbegp xbegs xbegf
#
ccc add xresw xresp tempo1 
ccc add tempo1 xress tempo2 
ccc add tempo2 xresf xresa 
ccc globavg xresa output=dummy 
    rm tempo1 tempo2 xresw xresp xress xresf
# 
ccc add xbaltw xbaltp tempo1 
ccc add tempo1 xbalts tempo2 
ccc add tempo2 xbaltf xbalta 
ccc globavg xbalta output=dummy 
    rm tempo1 tempo2 xbaltw xbaltp xbalts xbaltf  
#
ccc add xobaltw xobaltp tempo1 
ccc add tempo1 xobalts tempo2 
ccc add tempo2 xobaltf xobalta 
#ccc rglbavg xobalta output=dummy 
    rm tempo1 tempo2 xobaltw xobaltp xobalts xobaltf
#
#  ------------------------------------ from now on, want to use obeg,
#                                       rename obeg->beg for upward
#                                       compatibility with old deck.
    mv xobega xbega
# 
#  ------------------------------------ make sea-land masks
#                                       land and ocean separately
# 
#  ------------------------------------ table used to extract masks.
#                                       must be consistent with content of the
# 				        file contaning the masks.
# 
# 	land ------------> 0.0
# 	atlantic north --> 1.0
# 		 south --> 2.0
# 	pacific  north --> 3.0
# 	         south --> 4.0
# 	indian   north --> 5.0
# 	         south --> 6.0
# 	mediterranean ---> 8.0
# 	hudson bay ------> 9.0
# 
    access all.masks $ocean_mask_file 
#  ---------------------------------- make masks for global ocean
# 				      1- grid mask (to be used for computation)
ccc fmask all.masks glob.oceans 
ccc cp glob.oceans tempo.mask 
#                                     2- zonal mask (to be used for display)
# 					(-1e6 is put at latitude where there
# 					is no occurence of ocean. xplot uses
# 					this as a flag to do not plot at
# 				        those latitudes)
# 
ccc rzonavg glob.oceans tempo.mask rzon.mask 
ccc fmask rzon.mask rzon.mask.tempo 
ccc xlin rzon.mask.tempo glob.oceans.zonm 
    rm rzon.mask rzon.mask.tempo 
#  ---------------------------------- make mask for atlantic ocean
ccc fmask all.masks lt_2.5 
ccc mlt glob.oceans lt_2.5 atl.ocean 
ccc cp atl.ocean tempo.mask 
# 
ccc rzonavg atl.ocean tempo.mask rzon.mask 
ccc fmask rzon.mask rzon.mask.tempo 
ccc xlin rzon.mask.tempo atl.ocean.zonm 
    rm lt_2.5 tempo.mask rzon.mask.tempo 
#  ---------------------------------- make mask for pacific ocean
ccc fmask all.masks gt_2.5 
ccc fmask all.masks lt_4.5 
ccc mlt gt_2.5 lt_4.5 pac.ocean 
ccc cp pac.ocean tempo.mask 
# 
ccc rzonavg pac.ocean tempo.mask rzon.mask 
ccc fmask rzon.mask rzon.mask.tempo 
ccc xlin rzon.mask.tempo pac.ocean.zonm 
    rm gt_2.5 lt_4.5 tempo.mask rzon.mask 
#  ---------------------------------- make mask for indian ocean
ccc fmask all.masks gt_4.5 
ccc fmask all.masks lt_6.5 
ccc mlt gt_4.5 lt_6.5 ind.ocean 
ccc cp ind.ocean tempo.mask 
# 
ccc rzonavg ind.ocean tempo.mask rzon.mask 
ccc fmask rzon.mask rzon.mask.tempo 
ccc xlin rzon.mask.tempo ind.ocean.zonm 
    rm gt_4.5 lt_6.5 tempo.mask rzon.mask 
#  ---------------------------------- make mask for other basins
ccc fmask all.masks other.basins 
ccc cp other.basins tempo.mask 
# 
ccc rzonavg other.basins tempo.mask rzon.mask  
ccc fmask rzon.mask rzon.mask.tempo 
ccc xlin rzon.mask.tempo other.basins.zonm 
    rm tempo.mask rzon.mask 
# 
# #########################################################################
#  ---------------------------- compute implied transport over ocean(s)   #
# 				  					  #
#                                t=int{2pi.a**2.[beta.h].cos(phi).dphi}	  #
# 			       where h=xbega. the latitudinal integration #
#                               is done southward from the north pole.	  #
# #########################################################################
# 
#  ---------------------------------- 1- computation for global oceans
# 
ccc fmask obs_beg_ann obs_mask
ccc mlt xbega glob.oceans xbegao
ccc mlt obs_beg_ann obs_mask obs_beg_ann_o
ccc globavg xbegao output=dummy
ccc globavg obs_beg_ann_o output=dummy
ccc zonavg xbegao zbego 
ccc rzonavg xbegao glob.oceans zbego_plot
ccc rzonavg obs_beg_ann_o obs_mask z_obs_beg_ann_o_plot
ccc zonavg xbalta zbalta 
ccc latint zbego zlbego 
ccc xlin zlbego iheatrans 
# -----------------------------------    plot the obeg on a full grid
ccc ggplot xbegao
ccc ggplot obs_beg_ann_o
ccc joinup plts_beg zbego_plot z_obs_beg_ann_o_plot 
ccc xmplot plts_beg 

ccc xplot zbalta
# -----------------------------------    plot the implied transport
ccc xlin iheatrans iheatrans.glob 
ccc add iheatrans.glob glob.oceans.zonm trans.plot.glob 
ccc xplot trans.plot.glob 
# 
# -----------------------------------    recomputed implied transport
#                                        with unbiased beg.
#                                        (unbalanced energy removed)
ccc globavg zbego unbalanced.beg 
ccc xylin zbego unbalanced.beg corec.zbego 
ccc latint corec.zbego corec.zlbego 
ccc xlin corec.zlbego corec.iheatrans 
ccc globavg corec.zbego output=dummy
ccc txtplot input=dummy
    rm dummy
# 
ccc xlin corec.iheatrans corec.iheatrans.glob 
ccc add corec.iheatrans.glob glob.oceans.zonm corec.trans.plot.glob 
ccc xplot corec.trans.plot.glob 
# 
# 
#  put a release here!
    rm glob.oceans glob.oceans.zonm xbegao zbego zlbego iheatrans 
# 
# 
#  ---------------------------------- 2- computation for the atlantic ocean
# 							    ==============
ccc mlt xbega atl.ocean xbegao 
ccc zonavg xbegao zbego 
ccc latint zbego zlbego 
ccc xlin zlbego iheatrans 
# -----------------------------------   plot the implied transport
ccc xlin iheatrans iheatrans.atl 
ccc add iheatrans.atl atl.ocean.zonm trans.plot.atl 
ccc xplot trans.plot.atl 
    rm atl.ocean atl.ocean.zonm xbegao zbego zlbego iheatrans 
# 
# 
#  ---------------------------------- 3- computation for the pacific ocean
# 							    =============
ccc mlt xbega pac.ocean xbegao 
ccc zonavg xbegao zbego 
ccc latint zbego zlbego 
ccc xlin zlbego iheatrans 
# #---------------------------- plot the implied transport
ccc xlin iheatrans iheatrans.pac 
ccc add iheatrans.pac pac.ocean.zonm trans.plot.pac 
ccc xplot trans.plot.pac 
    rm pac.ocean pac.ocean.zonm xbegao zbego zlbego iheatrans 
# 
# 
#  ---------------------------------- 4- computation for the indian ocean
# 							    ============
ccc mlt xbega ind.ocean xbegao 
ccc zonavg xbegao zbego 
ccc latint zbego zlbego 
ccc xlin zlbego iheatrans 
# #----------------------------------   plot the implied transport
ccc xlin iheatrans iheatrans.ind 
ccc add iheatrans.ind ind.ocean.zonm trans.plot.ind 
ccc xplot trans.plot.ind 
    rm ind.ocean ind.ocean.zonm xbegao zbego zlbego iheatrans 
# 
# 
#  ---------------------------------- 5- computation for the other basins
# 							    ============
ccc mlt xbega other.basins xbegao 
ccc zonavg xbegao zbego 
ccc latint zbego zlbego 
ccc xlin zlbego iheatrans 
# -----------------------------------   plot the implied transport
ccc xlin iheatrans iheatrans.other 
ccc add iheatrans.other other.basins.zonm trans.plot.other 
ccc xplot trans.plot.other 
    rm other.basins other.basins.zonm xbegao zbego zlbeg0o
    rm iheatrans iheatrans.other 
# 
# 
# -----------------------------------  put the 4 first curves on one plot
#                                      (without the -1e6 mask)
# 
ccc joinup curves iheatrans.glob iheatrans.atl iheatrans.pac iheatrans.ind 
ccc xmplot curves 
    rm iheatrans.glob iheatrans.atl iheatrans.pac iheatrans.ind 
    rm curves 
# 
.   plotid.cdk
.   plot.cdk

end_of_script

cat > Input_Cards <<end_of_data

+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
         DAYS      = $days
         RUN       = $run
	 MODEL1    = $model1
	 MODEL2    = $model2
	 MODEL3    = $model3
	 MODEL4    = $model4
0 PLOTBEG ----------------------------------------------------- PLOTBEG
. headfram.cdk
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
      PROGRAM LATINT
C     PROGRAM LATINT (ZXIN,          ZXOUT,       OUTPUT,               )       F2
C    1          TAPE1=ZXIN,    TAPE2=ZXOUT, TAPE6=OUTPUT)                      
C     -----------------------------------------------                           F2
C                                                                               F2
C     FEB/1995 - B.DENIS                                                        F2
C                                                                               F2
CLATINT  - COMPUTES LATITUDINAL INTEGRATION  OF CROSS-SECTIONS          1  1   GF1
C                                                                               F3
CAUTHOR  - B.DENIS                                                              F3
C                                                                               F3
CPURPOSE - READS CROSS-SECTIONS FROM FILE ZXIN, INTEGRATES IN LATITUDE          F3
C          AND PUTS THE RESULTS ON FILE ZXOUT. EACH LATITUDINAL VALUE           F3
C          IN ZXOUT IS THE RESULT OF A SOUTHWARD OR NORTHWARD                   F3
C          INTEGRATION FOLLOWING:                                               F3
C          Y(I)=INTEGRAL[X(LAT).FCT(LAT).DLAT)] FROM I= NP/SP TO LAT.           F3
C          FCT(LAT) IS A MULTIPLYING FUNCTION: COS(LAT), SIN(LAT) OR 1.         F3
C                                                                               F3
C          NOTE - MAXIMUM LATITUDES IS 181, MAXIMUM LEVELS IS 30.               F3
C               - INTEGRATION IS DONE WITHOUT USING GAUSSIAN WEIGHTS.           F3
C                                                                               F3
CINPUT FILE...                                                                  F3
C                                                                               F3
C      ZXIN  = CROSS-SECTIONS.                                                  F3
C                                                                               F3
COUTPUT FILE...                                                                 F3
C                                                                               F3
C      ZXOUT = CROSS-SECTIONS WHERE EACH LEVEL CONTAINS LATITUDINAL             F3
C              INTEGRATION.                                                     F3
C
CINPUT PARAMETERS...                                                            F5
C                                                                               F5
C      OPTFCT= OPTION TO SET THE MULTIPLYING FUNCTION:4H COS OR 4H SIN          F5
C              OR 4H ONE.                                                       F5
C      OPTPOL= OPTION TO SET FROM WHICH POLE TO START:4H  NP OR 4H  SP          F5
C                                                                               F5
C      N.B:    THE DEFAULT (BLANK CHARACTERS IN THE INPUT CARD) IS:             F5
C              OPTFCT=4H COS, OPTPOL=4H  NP.                                    F5
C                                                                               F5
CEXAMPLE OF INPUT CARD...                                                       F5
C                                                                               F5
C*LATINT    COS   NP                                                            F5
C------------------------------------------------------------------------------
C
C
      LOGICAL OK
      REAL XA(181,30),FINTL(181)
      REAL*8 SL(181),CL(181),WL(181),WOSSL(181),RAD(181),FNCT(181)
      INTEGER LEV(30)
      COMMON/ICOM/IBUF(8),IDAT(362)
      DATA MAXX/362/, MAXL/30/, MAXJ/181/
C---------------------------------------------------------------------
      NFF=4
      CALL JCLPNT(NFF,1,2,5,6)
      REWIND 1
      REWIND 2
C
C     * READ  OPTFCT AND OPTPOL FROM INPUT CARD.
C
      READ(5,5010,END=902) OPTFCT, OPTPOL
      WRITE(6,6000) OPTFCT
      WRITE(6,6010) OPTPOL
C
C     * CHECK FOR ERRORS/BAD OPTIONS
      IF(.NOT.((OPTFCT.EQ.3HCOS).OR.(OPTFCT.EQ.3HSIN).OR.
     +  (OPTFCT.EQ.3HONE).OR.(OPTFCT.EQ.3H   )))  CALL XIT('LATINT',-1)
      IF(.NOT.((OPTPOL.EQ.2HNP).OR.(OPTPOL.EQ.2HSP)
     +         .OR.(OPTPOL.EQ.2H  )))             CALL XIT('LATINT',-2)
C
C     * SET THE DEFAULT OPTIONS IF REQUIRED
      IF(OPTFCT.EQ.3H   ) OPTFCT=3HCOS
      IF(OPTPOL.EQ.2H  )  OPTPOL=2HNP
C
C
C     * GET THE NEXT CROSS-SECTION. STOP IF THE FILE IS EMPTY.
C     * LEV WILL CONTAIN THE LEVEL VALUE.
C
      NR=0
 110  CALL GETZX2(1,XA,MAXJ,LEV,NLEV,IBUF,MAXX,OK)
      IF(.NOT.OK)THEN
        WRITE(6,6030) NR
        IF(NR.EQ.0) CALL                               XIT('LATINT',-3)
        CALL                                           XIT('LATINT', 0)
      ENDIF
C
      IF((NLEV.LT.1).OR.(NLEV.GT.MAXL)) CALL           XIT('LATINT',-4)
      NLAT=IBUF(5)
C
C     * GAUSSG COMPUTES THE VALUE OF THE GAUSSIAN LATITUDES AND THEIR
C     * SINES AND COSINES. TRIGL MAKES THEM GLOBAL (S TO N).
C
      ILATH=NLAT/2
      CALL GAUSSG(ILATH,SL,WL,CL,RAD,WOSSL)
      CALL  TRIGL(ILATH,SL,WL,CL,RAD,WOSSL)
C
C     * CHOOSE MULTIPLYING FUNCTION
      IF(OPTFCT.EQ.3HCOS) THEN
         DO 150 I=1,NLAT
 150        FNCT(I)=CL(I)
         ELSE
            IF(OPTFCT.EQ.3HSIN) THEN
               DO 160 I=1,NLAT
 160              FNCT(I)=SL(I)
               ELSE
                  DO 170 I=1,NLAT
 170                 FNCT(I)=1.0  
                  ENDIF
               ENDIF
C - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
C     * FOR EACH LEVEL, INTEGRATE FROM THE MOST SOUTHERN OR NORTHERN 
C       LATITUDE TO THE CURRENT ONE.
C
C
       DO 200 L=1,NLEV
C
          IF(OPTPOL.EQ.2HSP)THEN 
             FINTL(1)=0.0
             DO 300 J=2,NLAT
                FINTL(J)=(XA(J,L)*FNCT(J)+XA(J-1,L)*FNCT(J-1))
     1     	     *(RAD(J)-RAD(J-1))/2.+ FINTL(J-1)
 300         CONTINUE
C
          ELSE
             FINTL(NLAT)=0.0
             DO 350 J=NLAT-1,1,-1
                FINTL(J)=(XA(J,L)*FNCT(J)+XA(J+1,L)*FNCT(J+1))
     1     	     *(RAD(J)-RAD(J+1))/2.+ FINTL(J+1)
 350         CONTINUE
             ENDIF  
C
      IBUF(4)=LEV(L)
      CALL PUTFLD2(2,FINTL,IBUF,MAXX)
      WRITE(6,6020) IBUF
 200  CONTINUE
      NR=NR+1
      GO TO 110
C
  902 CALL                                             XIT('LATINT',-5)
C----------------------------------------------------------------------
 5010 FORMAT(10X,2X,A3,3X,A2)
 6000 FORMAT('0LATINT -MULTIPLYING FNCT SET TO  :',A3)
 6010 FORMAT('0LATINT -INTEGRATION STARTING FROM:',A2)
 6020 FORMAT(' ',A4,I10,1X,A4,I10,4I6)
 6030 FORMAT('   LATINT READ',I5, '  RECORDS')
      END
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      OBEG 
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      OBEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      OBEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      OBEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BEG 
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BALT
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BALT
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BALT
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BALT
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      RES
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      RES
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      RES
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      RES
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      Total-sky TOA Net Flux (GEO) (W/m2)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      Total-sky TOA Net Flux (GEO) (W/m2)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      Total-sky TOA Net Flux (GEO) (W/m2)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      Total-sky TOA Net Flux (GEO) (W/m2)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XFIND.      BEG
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.246575
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.249315
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.246575
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.249315
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.246575
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.249315
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.246575
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.249315
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.246575
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.252054
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN     0.249315
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   GT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN         -1.E6
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       2.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN         -1.E6
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   GT       2.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       4.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN         -1.E6
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   GT       4.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       6.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN         -1.E6
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   GT       6.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LT       0.5
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN         -1.E6
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  FMASK.             NEXT   LE     1.E30
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
GGPLOT.            0 NEXT    13   0        1.     -400.      400.       25.0${b}8
RUN $run.   $days.   MODEL OBEG. (SEASONNALY WEIGHTED) UNITS W/M2.
              7  186  183  180  140  105  103  101
               -100.      -50.      -0.1      +.01       50.      100.
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
GGPLOT.            0 NEXT    13   0        1.     -400.      400.       25.0${b}8
RUN $run.   $days.   OBS. (ERA40 ) BEG. (SEAS. WEIGHTED) UNITS W/M2.
              7  186  183  180  140  105  103  101
               -100.      -50.      -0.1      +.01       50.      100.
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
XMPLOTBEG          0 NEXT    1     -150.      150.    1    2
RUN $run.  $days.  ZONAL MEAN OBEG OVER OCEAN. (MODEL + OBS.) UNITS W/M2.
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -150.      150.
RUN $run.  $days.  ZONAL MEAN BALT.            UNITS W/M2.
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN      1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.   $days. IMPLIED  HEAT TRANSP. (ALL BASINS) (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
     XYLIN        1.       -1.        0.
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN      1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.   $days. CORRECTED IMPLIED  HEAT TRANSP  (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
  XLIN       1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.   $days. IMPLIED  HEAT TRANSP. (ATLANTIC OCEAN) (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN      1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.  $days. IMPLIED  HEAT TRANSP. (PACIFIC OCEAN) (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN      1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.   $days. IMPLIED  HEAT TRANSP. (INDIAN OCEAN) (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
LATINT      COS   NP
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN    2.5505E14
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
   XLIN      1.0E-13
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
 XPLOT.            0 NEXT    1     -400.      400.    1     -1.E5
RUN $run.   $days. IMPLIED  HEAT TRANSP. (OTHER BASINS) (1E13 W)
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
XMPLOT.            0 NEXT    1     -400.      400.         4
RUN $run.  IMPLIED  HEAT TRANSP. (GLOB ATL PAC IND) (1E13 W)
. tailfram.cdk
+   .    :    .    :    .    :    .    :    .    :    .    :    .    :    .    :
end_of_data

 . endjcl.cdk

#end_of_job
