#!/bin/sh ################################################################################ #### UNIX Script Documentation Block # . . # Script name: global_analysis.sh # Script description: Makes a global spectral model analysis # # Author: Mark Iredell Org: NP23 Date: 1999-07-15 # # Abstract: This script makes a global spectral model analysis. # Both the surface analysis and the upper-air analysis are performed. # # Script history log: # 1999-05-01 Mark Iredell # 2002-04-26 Russ Treadon add global_angupdate processing # 2003-08-05 Russ Treadon add processing of hourly sigma and surface guess # 2004-03-26 Russ Treadon remove reference to IEEE TOVS-1b files, fix sfcg bug # 2005-01-03 Cheng-Hsuan Lu :set FSMCL(2:4) = FSMCL2 # add FNVMNC,FNVMXC,FNSLPC,FNABSC # 2005-07-22 Russ Treadon add processing of NOAA-18 hirs4, amsua, and mhs data # 2006-11-29 Russ Treadon update for global_gsi # # Usage: global_analysis.sh SFCGES SIGGES GBIAS GSATANG # SFCANL SIGANL ABIAS IGEN # # Input script positional parameters: # 1 Input surface guess # defaults to $SFCGES; required # 2 Input sigma guess # defaults to $SIGGES; required # 3 Input guess time dependent bias correction coefficients # defaults to $GBIAS; required # 4 Input guess angle dependent bias correction # defaults to $GSATANG; required # 5 Output surface analysis # defaults to $SFCANL, then to ${COMOUT}/sfcanl # 6 Output sigma analysis # defaults to $SIGANL, then to ${COMOUT}/siganl # 7 Output bias correction # defaults to $ABIAS, then to ${COMOUT}/abias # 8 Output generating code # defaults to $IGEN, then to 0 # # Imported Shell Variables: # SFCGES Input surface guess # overridden by $1; required # SIGGES Input sigma guess # overridden by $2; required # GBIAS Input guess bias correction # overridden by $3; required # GSATANG Input guess angle dependent bias correction # overridden by $4; required # SFCANL Output surface analysis # overridden by $5; defaults to ${COMOUT}/sfcanl # SIGANL Output sigma analysis # overridden by $6; defaults to ${COMOUT}/siganl # ABIAS Output bias correction # overridden by $7; defaults to ${COMOUT}/abias # IGEN Output generating code # overridden by $8; defaults to 0 # SFCG03 Surface guess valid at -03 hour # defaults to ${COMOUT}/sfcf03; optional input # SFCG04 Surface guess valid at -04 hour # defaults to ${COMOUT}/sfcf04; optional input # SFCG05 Surface guess valid at -05 hour # defaults to ${COMOUT}/sfcf05; optional input # SFCG07 Surface guess valid at -07 hour # defaults to ${COMOUT}/sfcf07; optional input # SFCG08 Surface guess valid at -08 hour # defaults to ${COMOUT}/sfcf08; optional input # SFCG09 Surface guess valid at -09 hour # defaults to ${COMOUT}/sfcf09; optional input # SIGG03 Sigma guess valid at -03 hour # defaults to ${COMOUT}/sigf03; optional input # SIGG04 Sigma guess valid at -04 hour # defaults to ${COMOUT}/sigf04; optional input # SIGG05 Sigma guess valid at -05 hour # defaults to ${COMOUT}/sigf05; optional input # SIGG07 Sigma guess valid at -07 hour # defaults to ${COMOUT}/sigf07; optional input # SIGG08 Sigma guess valid at -08 hour # defaults to ${COMOUT}/sigf08; optional input # SIGG09 Sigma guess valid at -09 hour # defaults to ${COMOUT}/sigf09; optional input # GINCIN Input increment to guess # defaults to ${COMOUT}/gesfile_in; optional # BIASIN Input bias correction to guess # defaults to ${COMOUT}/biascor_in; optional # RADSTAT Output radiance assimilation statistics # defaults to ${COMIN}/${PREINP}radstat # GSISTAT Output gsi (obs-ges), qc, and iteration statistics # defaults to ${COMIN}/${PREINP}gsistat # PCPSTAT Output precipitation assimilation statistics # defaults to ${COMIN}/${PREINP}pcpstat # CNVSTAT Output conventional observation assimilation statistics # defaults to ${COMIN}/${PREINP}cnvstat # OZNSTAT Output ozone observation assimilation statistics # defaults to ${COMIN}/${PREINP}oznstat # GINCOUT Output increment to guess # defaults to ${COMIN}/${PREINP}gesfile_out # BIASOUT Output bias correction to guess # defaults to ${COMIN}/${PREINP}biascor_out # FIXGLOBAL Directory for global fixed files # defaults to /nwprod/fix # EXECGLOBAL Directory for global executables # defaults to /nwprod/exec # USHGLOBAL Directory for global scripts # defaults to /nwprod/ush # DATA working directory # (if nonexistent will be made, used and deleted) # defaults to current working directory # COMIN input directory # defaults to current working directory # COMOUT output directory # (if nonexistent will be made) # defaults to current working directory # XC Suffix to add to executables # defaults to none # PREINP Prefix to add to input observation files # defaults to none # SUFINP Suffix to add to input observation files # defaults to none # NCP Copy command # defaults to cp # SIGHDR Command to read sigma header # defaults to ${EXECGLOBAL}/global_sighdr$XC # SFCHDR Command to read surface header # defaults to ${EXECGLOBAL}/global_sfchdr$XC # CYCLEXEC Surface cycle executable # defaults to ${EXECGLOBAL}/global_cycle$XC # GSIEXEC Spectral analysis executable # defaults to ${EXECGLOBAL}/global_gsi$XC # ANGUPDATEXEC Radiance angle dependent bias correction update executable # defaults to ${EXECGLOBAL}/global_angupdate$XC # CHGRESSH Change resolution script # (needed only if model and analysis grids differ) # defaults to ${USHGLOBAL}/global_chgres.sh # CYCLESH Surface cycle script # defaults to ${USHGLOBAL}/global_cycle.sh # BERROR Input background error file # defaults to ${FIXGLOBAL}/global_berror.l${LEVS}y${NLAT}.sig.f77 # SATANGL Input satellite angle bias file # defaults to ${FIXGLOBAL}/global_satangbias.txt # SATINFO Input satellite information file # defaults to ${FIXGLOBAL}/global_satinfo.txt # RTMSPEC Input satellite spectral coefficients # defaults to ${FIXGLOBAL}/global_CRTM_SpcCoeff.f77 # RTMTRAN Input satellite transmittance coefficients # defaults to ${FIXGLOBAL}/global_CRTM_TauCoeff.f77 # RTMEMIS Input satellite emissivity coefficients # defaults to ${FIXGLOBAL}/global_CRTM_EmisCoeff.f77 # RTMAERO Input radiative transfer model aerosol coefficients # defaults to ${FIXGLOBAL}/global_CRTM_AerosolCoeff.f77 # RTMCLDS Input radiative transfer model cloud coefficients # defaults to ${FIXGLOBAL}/global_CRTM_CldCoeff.f77 # CONVINFO Input conventional observation information file # defaults to ${FIXGLOBAL}/global_convinfo.txt # OZINFO Input ozone information file # defaults to ${FIXGLOBAL}/global_ozone.txt # PCPINFO Input precipitation information file # defaults to ${FIXGLOBAL}/global_pcpinfo.txt # PREPQC Input QC-ed observation BUFR file # defaults to ${COMIN}/${PREINP}prepbufr${SUFINP} # GSNDBF Input GOES sounder radiance file (bufr format) # defaults to ${COMIN}/${PREINP}goesnd.tm00.bufr_d${SUFINP} # GSNDBF1 Input GOES 1x1 sounder radiance file (bufr format) # defaults to ${COMIN}/${PREINP}goesnd1.tm00.bufr_d${SUFINP} # B1HRS2 Input HIRS/2 radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bhrs2.tm00.bufr_d${SUFINP} # B1MSU Input MSU radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bmsu.tm00.bufr_d${SUFINP} # B1HRS3 Input HIRS/3 radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bhrs3.tm00.bufr_d${SUFINP} # B1HRS4 Input HIRS/4 radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bhrs4.tm00.bufr_d${SUFINP} # B1AMUA Input AMSU/A radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bamua.tm00.bufr_d${SUFINP} # B1AMUB Input AMSU/B radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bamub.tm00.bufr_d${SUFINP} # B1MHS Input MHS radiance file (bufr format) # defaults to ${COMIN}/${PREINP}1bmhs.tm00.bufr_d${SUFINP} # AIRSBF Input AIRS radiace file (bufr format) # defaults to ${COMIN}/${PREINP}airs.tm00.bufr_d${SUFINP} # AMSREBF Input AMSRE radiace file (bufr format) # defaults to ${COMIN}/${PREINP}amsre.tm00.bufr_d${SUFINP} # SSMITBF Input AIRS radiace file (bufr format) # defaults to ${COMIN}/${PREINP}ssmit.tm00.bufr_d${SUFINP} # SBUVBF Input NOAA POES SBUV ozone retrieval file # defaults to ${COMIN}/${PREINP}osbuv.tm00.bufr_d${SUFINP} # SMIPCP Input SSM/I precipitation rate file # defaults to ${COMIN}/${PREINP}spssmip.tm00.bufr_d${SUFINP} # TMIPCP Input TMI precipitation rate file # defaults to ${COMIN}/${PREINP}sptrmm.tm00.bufr_d${SUFINP} # GPSBF Input GPS local refractivity or bending angle data # defaults to ${COMIN}/${PREINP}gps.tm00.bufr_d${SUFINP} # INISCRIPT Preprocessing script # defaults to none # LOGSCRIPT Log posting script # defaults to none # ERRSCRIPT Error processing script # defaults to 'eval [[ $err = 0 ]]' # ENDSCRIPT Postprocessing script # defaults to none # JCAP Spectral truncation # defaults to the value in the input sigma file header # LEVS Number of levels # DELTIM Timestep in seconds # defaults to 3600/($JCAP/20) # CDATE Current analysis date in yyyymmddhh format # defaults to the value in the input surface file header # LATB Number of latitudes in surface cycling # defaults to the value in the input surface file header # LONB Number of longitudes in surface cycling # defaults to the value in the input surface file header # LSOIL Number of soil layers # defaults to 2 # FSMCL2 Scale in days to relax to soil moisture climatology # defaults to 60 # DELTSFC Cycling frequency in hours # defaults to forecast hour of $SFCGES # LATA Number of latitudes in spectral analysis # defaults to $LATB # LONA Number of longitudes in spectral analysis # defaults to $LONB # NSIG1 Number of levels per MPI task # (Important: number of MPI tasks must be 5*$LEVS/$NSIG1+2) # defaults to 1 # CYCLVARS Other namelist inputs to the cycle executable # defaults to none set # GSIVARS Other namelist inputs to the analysis executable # defaults to none set # SATVARS Other namelist input to analysis data usage namelist # defaults to none set # NTHREADS Number of threads # defaults to 1 # NTHSTACK Size of stack per thread # defaults to 64000000 # PGMOUT Executable standard output # defaults to $pgmout, then to '&1' # PGMERR Executable standard error # defaults to $pgmerr, then to '&1' # pgmout Executable standard output default # pgmerr Executable standard error default # REDOUT standard output redirect ('1>' or '1>>') # defaults to '1>', or to '1>>' to append if $PGMOUT is a file # REDERR standard error redirect ('2>' or '2>>') # defaults to '2>', or to '2>>' to append if $PGMERR is a file # VERBOSE Verbose flag (YES or NO) # defaults to NO # # Exported Shell Variables: # PGM Current program name # pgm # ERR Last return code # err # # Modules and files referenced: # scripts : $INISCRIPT # $LOGSCRIPT # $ERRSCRIPT # $ENDSCRIPT # $CHGRESSH # # programs : $CYCLEXEC # $GSIEXEC # $ANGUPDATEXEC # # fixed data : $BERROR # $SATANGL # $SATINFO # $RTMSPEC # $RTMTRAN # $RTMEMIS # $RTMAERO # $RTMCLDS # $CONVINFO # $OZINFO # $PCPINFO # # input data : $SFCGES # $SIGGES # $GBIAS # $GSATANG # $SFCG03 # $SFCG04 # $SFCG05 # $SFCG07 # $SFCG08 # $SFCG09 # $SIGG03 # $SIGG04 # $SIGG05 # $SIGG07 # $SIGG08 # $SIGG09 # $GINCIN # $BIASIN # $FNTSFA # $FNACNA # $FNSNOA # $PREPQC # $GSNDBF # $GSNDBF1 # $B1HRS2 # $B1MSU # $B1HRS3 # $B1HRS4 # $B1AMUA # $B1AMUB # $B1MHS # $AIRSBF # $AMSREBF # $SSMITBF # $SBUVBF # $SMIPCP # $TMIPCP # $GPSBF # # output data: $SFCANL # $SIGANL # $ABIAS # $RADSTAT # $GSISTAT # $PCPSTAT # $CNVSTAT # $OZNSTAT # $GINCOUT # $BIASOUT # $PGMOUT # $PGMERR # # Remarks: # # Condition codes # 0 - no problem encountered # >0 - some problem encountered # # Control variable resolution priority # 1 Command line argument. # 2 Environment variable. # 3 Inline default. # # Attributes: # Language: POSIX shell # Machine: IBM SP # ################################################################################ # Set environment. export VERBOSE=${VERBOSE:-"NO"} if [[ "$VERBOSE" = "YES" ]] then echo $(date) EXECUTING $0 $* >&2 set -x fi ###################### # For testing -JYZ ###################### #export GSIEXEC=$EXECGLOBAL/global_gsi.x #export ANGUPDATEXEC=$EXECGLOBAL/global_angupdate #export CHGRESEXEC=$EXECGLOBAL/global_chgres #export CHGRESSH=$USHGLOBAL/global_chgres.sh # Command line arguments. export SFCGES=${1:-${SFCGES:?}} export SIGGES=${2:-${SIGGES:?}} export GBIAS=${3:-${GBIAS:?}} export GSATANG=${4:-${GSATANG:?}} export SFCANL=${5:-${SFCANL}} export SIGANL=${6:-${SIGANL}} export ABIAS=${7:-${ABIAS}} export IGEN=${8:-${IGEN:-0}} # Directories. export FIXGLOBAL=${FIXGLOBAL:-/nwprod/fix} export FIXGSI=${FIXGSI:-/nwprod/fix} export EXECGLOBAL=${EXECGLOBAL:-/nwprod/exec} export USHGLOBAL=${USHGLOBAL:-/nwprod/ush} export DATA=${DATA:-$(pwd)} export COMIN=${COMIN:-$(pwd)} export COMOUT=${COMOUT:-$(pwd)} # Filenames. export XC=${XC} export PREINP=${PREINP} export SUFINP=${SUFINP} export SIGHDR=${SIGHDR:-${EXECGLOBAL}/global_sighdr$XC} export SFCHDR=${SFCHDR:-${EXECGLOBAL}/global_sfchdr$XC} export JCAP=${JCAP:-$($SIGHDR $SIGGES JCAP||echo 0)} export LATB=${LATB:-$($SFCHDR $SFCGES LATB||echo 0)} export LONB=${LONB:-$($SFCHDR $SFCGES LONB||echo 0)} export LATA=${LATA:-$LATB} export LONA=${LONA:-$LONB} export NLAT=${NLAT:-$(($LATA+2))} export LEVS=${LEVS:-$($SIGHDR $SIGGES LEVS||echo 0)} export DELTIM=${DELTIM:-$((3600/($JCAP/20)))} export CYCLEXEC=${CYCLEXEC:-${EXECGLOBAL}/global_cycle$XC} export GSIEXEC=${GSIEXEC:-${EXECGLOBAL}/global_gsi.x} export ANGUPDATEXEC=${ANGUPDATEXEC:-${EXECGLOBAL}/global_angupdate$XC} ##export ANGUPDATEXEC=${ANGUPDATEXEC:-/nwprod/exec/global_angupdate} export CHGRESSH=${CHGRESSH:-${USHGLOBAL}/global_chgres.sh} export CYCLESH=${CYCLESH:-${EXECGLOBAL}/global_cycle.sh} export BERROR=${BERROR:-${FIXGSI}/global_berror.l${LEVS}y${NLAT}.f77} export SATANGL=${SATANGL:-${FIXGSI}/global_satangbias.txt} export SATINFO=${SATINFO:-${FIXGSI}/global_satinfo.txt} export RTMSPEC=${RTMSPEC:-${FIXGSI}/global_CRTM_SpcCoeff.f77} export RTMTRAN=${RTMTRAN:-${FIXGSI}/global_CRTM_TauCoeff.f77} #export RTMEMIS=${RTMEMIS:-${FIXGSI}/global_CRTM_EmisCoeff.f77} #export RTMAERO=${RTMAERO:-${FIXGSI}/global_CRTM_AerosolCoeff.f77} #export RTMCLDS=${RTMCLDS:-${FIXGSI}/global_CRTM_CldCoeff.f77} export RTMEMIS=${RTMEMIS:-${FIXGSI}/crtm_gfsgsi/EmisCoeff/Big_Endian/EmisCoeff.bin} export RTMAERO=${RTMAERO:-${FIXGSI}/crtm_gfsgsi/AerosolCoeff/Big_Endian/AerosolCoeff.bin} export RTMCLDS=${RTMCLDS:-${FIXGSI}/crtm_gfsgsi/CloudCoeff/Big_Endian/CloudCoeff.bin} export CONVINFO=${CONVINFO:-${FIXGSI}/global_convinfo.txt} export OZINFO=${OZINFO:-${FIXGSI}/global_ozinfo.txt} export PCPINFO=${PCPINFO:-${FIXGSI}/global_pcpinfo.txt} export OBERROR=${OBERROR:-${FIXGLOBAL}/prepobs_errtable.global} export PREPQC=${PREPQC:-/dev/null} export GSNDBF=${GSNDBF:-/dev/null} export GSNDBF1=${GSNDBF1:-/dev/null} export B1HRS2=${B1HRS2:-/dev/null} export B1MSU=${B1MSU:-/dev/null} export B1HRS3=${B1HRS3:-/dev/null} export B1HRS4=${B1HRS4:-/dev/null} export B1AMUA=${B1AMUA:-/dev/null} export B1AMUB=${B1AMUB:-/dev/null} export B1MHS=${B1MHS:-/dev/null} export AIRSBF=${AIRSBF:-/dev/null} export IASIBF=${IASIBF:-/dev/null} export AMSREBF=${AMSREBF:-/dev/null} export SSMITBF=${SSMITBF:-/dev/null} export SBUVBF=${SBUVBF:-/dev/null} export SMIPCP=${SMIPCP:-/dev/null} export TMIPCP=${TMIPCP:-/dev/null} export GPSBF=${GPSBF:-/dev/null} export GINCIN=${GINCIN:-${COMOUT}/gesfile_in} export BIASIN=${BIASIN:-${COMOUT}/biascor_in} export SFCG03=${SFCG03:-${COMOUT}/sfcf03} export SFCG04=${SFCG04:-${COMOUT}/sfcf04} export SFCG05=${SFCG05:-${COMOUT}/sfcf05} export SFCG07=${SFCG07:-${COMOUT}/sfcf07} export SFCG08=${SFCG08:-${COMOUT}/sfcf08} export SFCG09=${SFCG09:-${COMOUT}/sfcf09} export SFCG03M=${SFCG03M:-${COMOUT}/sfcfm03} export SFCG04M=${SFCG04M:-${COMOUT}/sfcfm04} export SFCG05M=${SFCG05M:-${COMOUT}/sfcfm05} export SFCG07M=${SFCG07M:-${COMOUT}/sfcfm07} export SFCG08M=${SFCG08M:-${COMOUT}/sfcfm08} export SFCG09M=${SFCG09M:-${COMOUT}/sfcfm09} export SIGG03=${SIGG03:-${COMOUT}/sigf03} export SIGG04=${SIGG04:-${COMOUT}/sigf04} export SIGG05=${SIGG05:-${COMOUT}/sigf05} export SIGG07=${SIGG07:-${COMOUT}/sigf07} export SIGG08=${SIGG08:-${COMOUT}/sigf08} export SIGG09=${SIGG09:-${COMOUT}/sigf09} export SFCANL=${SFCANL:-${COMIN}/${PREINP}sfcanl} export SIGANL=${SIGANL:-${COMIN}/${PREINP}sanl} export ABIAS=${ABIAS:-${COMIN}/${PREINP}abias} export GINCOUT=${GINCOUT:-${COMIN}/${PREINP}gesfile_out} export BIASOUT=${BIASOUT:-${COMIN}/${PREINP}biascor_out} export RADSTAT=${RADSTAT:-${COMIN}/${PREINP}radstat} export GSISTAT=${GSISTAT:-${COMIN}/${PREINP}gsistat} export PCPSTAT=${PCPSTAT:-${COMIN}/${PREINP}pcpstat} export CNVSTAT=${CNVSTAT:-${COMIN}/${PREINP}cnvstat} export OZNSTAT=${OZNSTAT:-${COMIN}/${PREINP}oznstat} export SATANGO=${SATANGO:-${COMIN}/${PREINP}satang} export INISCRIPT=${INISCRIPT} export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} export LOGSCRIPT=${LOGSCRIPT} export ENDSCRIPT=${ENDSCRIPT} # Other variables. export CDATE=${CDATE:-$($SFCHDR $SFCGES VDATE||echo 0)} export LSOIL=${LSOIL:-2} export FSMCL2=${FSMCL2:-60} export DELTSFC=${DELTSFC:-$($SFCHDR $SFCGES FHOUR||echo 0)} export CYCLVARS=${CYCLVARS} export SETUP=${SETUP:-""} export GRIDOPTS=${GRIDOPTS:-""} export BKGVERR=${BKGVERR:-""} export ANBKGERR=${ANBKGERR:-""} export JCOPTS=${JCOPTS:-""} export STRONGOPTS=${STRONGOPTS:-""} export OBSQC=${OBSQC:-""} export OBSINPUT=${OBSINPUT:-""} export SUPERRAD=${SUPERRAD:-""} export SINGLEOB=${SINGLEOB:-""} export SETUPANG=${SETUPANG:-""} export OBSINPUTANG=${OBSINPUTANG:-""} export NTHREADS=${NTHREADS:-1} export NTHSTACK=${NTHSTACK:-64000000} export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} export PGMERR=${PGMERR:-${pgmerr:-'&2'}} export OBERRFLAG=${OBERRFLAG:-.false.} export DIAGCONV=${DIAGCONV:-.false.} export HXONLY=${HXONLY:-.false.} export PERTURB_OBS=${PERTURB_OBS:-.false.} export PERTURB_FACT=${PERTURB_FACT:-0} export PERTURB_BERR=${PERTURB_BERR:-.false.} export PERTURB_BERR_FACT=${PERTURB_BERR_FACT:-0} export ONEOB_TEST=${ONEOB_TEST:-.false.} export NCP=${NCP:-cp} typeset -L1 l=$PGMOUT [[ $l = '&' ]]&&a=''||a='>' export REDOUT=${REDOUT:-'1>'$a} typeset -L1 l=$PGMERR [[ $l = '&' ]]&&a=''||a='>' export REDERR=${REDERR:-'2>'$a} homedir=$PWD pwd=$(pwd) if [[ -d $DATA ]] then mkdata=NO else mkdir -p $DATA mkdata=YES fi cd $DATA||exit 99 ################################################################################ # Update surface guess file to produce surface analysis $CYCLESH $SFCGES $SFCANL ################################################################################ # If necessary, change resolution of surface guess files. ## NOTE: 10/01/2003, r.treadon ## To prevent misleading error messages, copy/process 4,5,7,8 hour ## forecasts only if files exist. # here we assume LONA==LONB, LATA==LATB #if [[ $LATA -ne $LATB && $LONA -ne $LONB ]]; then # echo "ERROR: LONA must be equal to LONB, LATA must be equal to LATB" # exit 1 #fi #if [[ $LATA -ne $LATB && $LONA -ne $LONB ]]; then #echo "executing global_chgres" #fh=${FHMIN} #PWD=`pwd` #DATAHOLD=$DATA #export NTHREADS=8 #while [[ $fh -le $FHMAX ]]; do # fhour="`printf %02i $fh`" # SFCGIN=${datapath2}/bfg_${analdate}_fhr${fhour}_${charnanal} # SFCGOUT=${datapath2}/bfg2${analdate}_fhr${fhour}_${charnanal} # varname="SFCG$fhour"a # SFCGIN=${varname} # varname="SFCG$fhour" # SFCGOUT=${varname} ################################################################################ # Make atmospheric analysis export XLSMPOPTS="parthds=1:stack=$NTHSTACK" export PGM=$DATA/$(basename $GSIEXEC) export pgm=$PGM $LOGSCRIPT rm berror_stats satbias_angle satinfo SpcCoeff.bin TauCoeff.bin EmisCoeff.bin rm AerosolCoeff.bin CloudCoeff.bin convinfo ozinfo pcpinfo errtable rm prepbufr gsndrbufr gsnd1bufr hirs2bufr msubufr hirs3bufr hirs4bufr rm amsuabufr amsubbufr mhsbufr sbuvbufr ssmibufr tmibufr airsbufr rm amsrebufr ssmitbufr gpsrobufr iasibufr rm satbias_in satbias_ang.in rm sfcf03 sfcf04 sfcf05 sfcf06 sfcf07 sfcf08 sfcf09 rm sfcfm03 sfcfm04 sfcfm05 sfcfm06 sfcfm07 sfcfm08 sfcfm09 rm sigf03 sigf04 sigf05 sigf06 sigf07 sigf08 sigf09 siganl rm gesfile_in gesfiles_out satbias_in satbias_ang.in satbias_out rm prepbufr hirs2bufr msubufr hirs3bufr hirs4bufr amsuabufr rm amsubbufr mhsbufr airsbufr sbuvbufr ssmibufr tmibufr gpsrobufr rm amsrebufr ssmitbufr gsndrbufr gsnd1bufr ${NCP:-cp} $GSIEXEC $DATA ## NOTE: 10/01/2003, r.treadon ## Do not add above file existence tests since ## we do not link to files in operations # Fixed fields ln -fs $BERROR berror_stats ln -fs $SATANGL satbias_angle ln -fs $SATINFO satinfo #ln -fs $RTMSPEC SpcCoeff.bin #ln -fs $RTMTRAN TauCoeff.bin ln -fs $RTMEMIS EmisCoeff.bin ln -fs $RTMAERO AerosolCoeff.bin ln -fs $RTMCLDS CloudCoeff.bin ln -fs $CONVINFO convinfo ln -fs $OZINFO ozinfo ln -fs $PCPINFO pcpinfo ln -fs $OBERROR errtable # CRTM Spectral and Transmittance coefficients #nsatsen=`cat satinfo | wc -l` #isatsen=1 #while [[ $isatsen -le $nsatsen ]]; do # flag=`head -n $isatsen satinfo | tail -1 | cut -c1-1` # if [[ "$flag" != "!" ]]; then # satsen=`head -n $isatsen satinfo | tail -1 | cut -f 2 -d" "` # spccoeff=${satsen}.SpcCoeff.bin # if [[ ! -s $spccoeff ]]; then # ln -fs $FIXGLOBAL/crtm_gfsgsi/SpcCoeff/No_AC/Big_Endian/$spccoeff $spccoeff # ln -fs $FIXGLOBAL/crtm_gfsgsi/TauCoeff/Big_Endian/${satsen}.TauCoeff.bin ${satsen}.TauCoeff.bin # fi # fi # isatsen=` expr $isatsen + 1 ` #done #satsens="amsua_n15 amsua_n16 amsua_n17 amsua_n18 amsub_n15 amsub_n16 amsub_n17 amsub_n18" # jsw - this is faster. if [ -z "$CONVONLY" ]; then satsens=`ls -1 $FIXGLOBAL/crtm_gfsgsi/SpcCoeff/Big_Endian/ | cut -f1 -d"." ` for satsen in $satsens; do #echo $satsen spccoeff=${satsen}.SpcCoeff.bin if [[ ! -s $spccoeff ]]; then ln -fs $FIXGSI/crtm_gfsgsi/SpcCoeff/Big_Endian/$spccoeff $spccoeff ln -fs $FIXGSI/crtm_gfsgsi/TauCoeff/Big_Endian/${satsen}.TauCoeff.bin ${satsen}.TauCoeff.bin fi done fi # Observational data ln -fs $PREPQC prepbufr ln -fs $GSNDBF gsndrbufr ln -fs $GSNDBF1 gsnd1bufr ln -fs $B1HRS2 hirs2bufr ln -fs $B1MSU msubufr ln -fs $B1HRS3 hirs3bufr ln -fs $B1HRS4 hirs4bufr ln -fs $B1AMUA amsuabufr ln -fs $B1AMUB amsubbufr ln -fs $B1MHS mhsbufr ln -fs $AIRSBF airsbufr ln -fs $IASIBF iasibufr ln -fs $AMSREBF amsrebufr ###ln -fs $SSMITBF ssmitbufr ln -fs $SBUVBF sbuvbufr ln -fs $SMIPCP ssmibufr ln -fs $TMIPCP tmibufr ln -fs $GPSBF gpsrobufr # jsw - add tcvitals file. ln -fs $TCVIT tcvitals # Guess fields ln -fs $GBIAS satbias_in ln -fs $GSATANG satbias_ang.in ln -fs $GINCIN gesfile_in ln -fs $BIASIN biascor_in ln -fs $SIGG03 sigf03 ln -fs $SIGG04 sigf04 ln -fs $SIGG05 sigf05 ln -fs $SIGGES sigf06 ln -fs $SIGG07 sigf07 ln -fs $SIGG08 sigf08 ln -fs $SIGG09 sigf09 ln -fs $SFCG03 sfcf03 ln -fs $SFCG04 sfcf04 ln -fs $SFCG05 sfcf05 ln -fs $SFCG06 sfcf06 ln -fs $SFCG07 sfcf07 ln -fs $SFCG08 sfcf08 ln -fs $SFCG09 sfcf09 ln -fs $SFCG03M sfcfm03 ln -fs $SFCG04M sfcfm04 ln -fs $SFCG05M sfcfm05 ln -fs $SFCG06M sfcfm06 ln -fs $SFCG07M sfcfm07 ln -fs $SFCG08M sfcfm08 ln -fs $SFCG09M sfcfm09 # Output files ln -fs $SIGANL siganl ln -fs $ABIAS satbias_out ln -fs $GINCOUT gesfile_out ln -fs $BIASOUT biascor_out if [[ "${charnanal}" != "ensmean" ]]; then ${NCP} ${COMOUT}/obs_input.${CDATE}.tar ${DATA}/ cd ${DATA} tar -xvf obs_input.${CDATE}.tar fi ls -l # these files on't exist, but the gsi tries to read them. #touch pcpbias_in touch ssmisbufr touch gimgrbufr wait # wait for global_cycle to finish. if [ -n "$CONVONLY" ]; then GBIAS=$SFCGES GSATANG=$SIGGES fi if [ -s $GBIAS ] && [ -s $GSATANG ] && [ -s $SFCGES ] && [ -s $SFCG03 ] && [ -s $SFCG09 ] && [ -s $SIGGES ] && [ -s $SIGG03 ] && [ -s $SIGG09 ] && [ -s $SFCANL ]; then # Create global_gsi namelist cat < gsiparm.anl &SETUP miter=0,niter(1)=1,niter(2)=1, niter_no_qc(1)=10000,niter_no_qc(2)=1000000, write_diag(1)=.true.,write_diag(2)=.false.,write_diag(3)=.true., qoption=2, gencode=$IGEN,factqmin=0.005,factqmax=0.005,deltim=$DELTIM, ndat=67,npred=5,iguess=-1, oneobtest=.false.,retrieval=.false.,l_foto=.false., use_pbl=.false., $SETUP / &GRIDOPTS JCAP_B=$JCAP,JCAP=$JCAP,NLAT=$NLAT,NLON=$LONA,nsig=$LEVS,hybrid=.true., regional=.false.,nlayers(63)=3,nlayers(64)=6, $GRIDOPTS / &BKGERR as=0.6,0.6,0.75,0.75,0.75,0.75,1.0,1.0 vs=0.7, hzscl=1.7,0.8,0.5, hswgt=0.45,0.3,0.25, bw=0.0,norsp=4, bkgv_flowdep=.true.,bkgv_rewgtfct=1.5, tsfc_sdv(1)=3.0,tsfc_sdv(2)=3.0, $BKGVERR / &ANBKGERR anisotropic=.false., $ANBKGERR / &JCOPTS ljcdfi=.false.,alphajc=0.0,ljcpdry=.true.,bamp_jcpdry=2.5e7, $JCOPTS / &STRONGOPTS jcstrong=.false.,nstrong=0,nvmodes_keep=0,period_max=6.,period_width=1.5, jcstrong_option=2,baldiag_full=.false.,baldiag_inc=.false., $STRONGOPTS / &OBSQC dfact=0.75,dfact1=3.0,noiqc=.true.,oberrflg=.false.,c_varqc=0.02, use_poq7=.true., $OBSQC / &OBS_INPUT dmesh(1)=145.0,dmesh(2)=145.0,dmesh(3)=145.0,dmesh(4)=145.0,dmesh(5)=145.0,dmesh(6)=150.0,time_window_max=3.0, dfile(01)='prepbufr', dtype(01)='ps', dplat(01)=' ', dsis(01)='ps', dval(01)=1.0, dthin(01)=0, dsfcalc(01)=0, dfile(02)='prepbufr' dtype(02)='t', dplat(02)=' ', dsis(02)='t', dval(02)=1.0, dthin(02)=0, dsfcalc(02)=0, dfile(03)='prepbufr', dtype(03)='q', dplat(03)=' ', dsis(03)='q', dval(03)=1.0, dthin(03)=0, dsfcalc(03)=0, dfile(04)='prepbufr', dtype(04)='pw', dplat(04)=' ', dsis(04)='pw', dval(04)=1.0, dthin(04)=0, dsfcalc(04)=0, dfile(05)='prepbufr', dtype(05)='uv', dplat(05)=' ', dsis(05)='uv', dval(05)=1.0, dthin(05)=0, dsfcalc(05)=0, dfile(06)='prepbufr', dtype(06)='spd', dplat(06)=' ', dsis(06)='spd', dval(06)=1.0, dthin(06)=0, dsfcalc(06)=0, dfile(07)='prepbufr', dtype(07)='dw', dplat(07)=' ', dsis(07)='dw', dval(07)=1.0, dthin(07)=0, dsfcalc(07)=0, dfile(08)='radarbufr', dtype(08)='rw', dplat(08)=' ', dsis(08)='rw', dval(08)=1.0, dthin(08)=0, dsfcalc(08)=0, dfile(09)='prepbufr', dtype(09)='sst', dplat(09)=' ', dsis(09)='sst', dval(09)=1.0, dthin(09)=0, dsfcalc(09)=0, dfile(10)='gpsrobufr', dtype(10)='gps_ref', dplat(10)=' ', dsis(10)='gps_ref', dval(10)=1.0, dthin(10)=0, dsfcalc(10)=0, dfile(11)='ssmirrbufr',dtype(11)='pcp_ssmi', dplat(11)='dmsp', dsis(11)='pcp_ssmi', dval(11)=1.0, dthin(11)=-1, dsfcalc(11)=0, dfile(12)='tmirrbufr', dtype(12)='pcp_tmi', dplat(12)='trmm', dsis(12)='pcp_tmi', dval(12)=1.0, dthin(12)=-1, dsfcalc(12)=0, dfile(13)='sbuvbufr', dtype(13)='sbuv2', dplat(13)='n16', dsis(13)='sbuv8_n16', dval(13)=1.0, dthin(13)=0, dsfcalc(13)=0, dfile(14)='sbuvbufr', dtype(14)='sbuv2', dplat(14)='n17', dsis(14)='sbuv8_n17', dval(14)=1.0, dthin(14)=0, dsfcalc(14)=0, dfile(15)='sbuvbufr', dtype(15)='sbuv2', dplat(15)='n18', dsis(15)='sbuv8_n18', dval(15)=1.0, dthin(15)=0, dsfcalc(15)=0, dfile(16)='hirs2bufr', dtype(16)='hirs2', dplat(16)='n14', dsis(16)='hirs2_n14', dval(16)=6.0, dthin(16)=1, dsfcalc(16)=0, dfile(17)='hirs3bufr', dtype(17)='hirs3', dplat(17)='n16', dsis(17)='hirs3_n16', dval(17)=0.0, dthin(17)=1, dsfcalc(17)=0, dfile(18)='hirs3bufr', dtype(18)='hirs3', dplat(18)='n17', dsis(18)='hirs3_n17', dval(18)=6.0, dthin(18)=1, dsfcalc(18)=0, dfile(19)='hirs4bufr', dtype(19)='hirs4', dplat(19)='n18', dsis(19)='hirs4_n18', dval(19)=0.0, dthin(19)=1, dsfcalc(19)=0, dfile(20)='hirs4bufr', dtype(20)='hirs4', dplat(20)='metop-a', dsis(20)='hirs4_metop-a', dval(20)=6.0, dthin(20)=1, dsfcalc(20)=0, dfile(21)='gsndrbufr', dtype(21)='sndr', dplat(21)='g11', dsis(21)='sndr_g11', dval(21)=0.0, dthin(21)=1, dsfcalc(21)=0, dfile(22)='gsndrbufr', dtype(22)='sndr', dplat(22)='g12', dsis(22)='sndr_g12', dval(22)=0.0, dthin(22)=1, dsfcalc(22)=0, dfile(23)='gimgrbufr', dtype(23)='goes_img', dplat(23)='g11', dsis(23)='imgr_g11', dval(23)=0.0, dthin(23)=1, dsfcalc(23)=0, dfile(24)='gimgrbufr', dtype(24)='goes_img', dplat(24)='g12', dsis(24)='imgr_g12', dval(24)=0.0, dthin(24)=1, dsfcalc(24)=0, dfile(25)='airsbufr', dtype(25)='airs', dplat(25)='aqua', dsis(25)='airs_aqua', dval(25)=20.0, dthin(25)=1, dsfcalc(25)=0, dfile(26)='msubufr', dtype(26)='msu', dplat(26)='n14', dsis(26)='msu_n14', dval(26)=2.0, dthin(26)=2, dsfcalc(26)=0, dfile(27)='amsuabufr', dtype(27)='amsua', dplat(27)='n15', dsis(27)='amsua_n15', dval(27)=10.0, dthin(27)=2, dsfcalc(27)=0, dfile(28)='amsuabufr', dtype(28)='amsua', dplat(28)='n16', dsis(28)='amsua_n16', dval(28)=0.0, dthin(28)=2, dsfcalc(28)=0, dfile(29)='amsuabufr', dtype(29)='amsua', dplat(29)='n17', dsis(29)='amsua_n17', dval(29)=0.0, dthin(29)=2, dsfcalc(29)=0, dfile(30)='amsuabufr', dtype(30)='amsua', dplat(30)='n18', dsis(30)='amsua_n18', dval(30)=10.0, dthin(30)=2, dsfcalc(30)=0, dfile(31)='amsuabufr', dtype(31)='amsua', dplat(31)='metop-a', dsis(31)='amsua_metop-a', dval(31)=10.0, dthin(31)=2, dsfcalc(31)=0, dfile(32)='airsbufr', dtype(32)='amsua', dplat(32)='aqua', dsis(32)='amsua_aqua', dval(32)=5.0, dthin(32)=2, dsfcalc(32)=0, dfile(33)='amsubbufr', dtype(33)='amsub', dplat(33)='n15', dsis(33)='amsub_n15', dval(33)=3.0, dthin(33)=3, dsfcalc(33)=0, dfile(34)='amsubbufr', dtype(34)='amsub', dplat(34)='n16', dsis(34)='amsub_n16', dval(34)=3.0, dthin(34)=3, dsfcalc(34)=0, dfile(35)='amsubbufr', dtype(35)='amsub', dplat(35)='n17', dsis(35)='amsub_n17', dval(35)=3.0, dthin(35)=3, dsfcalc(35)=0, dfile(36)='mhsbufr', dtype(36)='mhs', dplat(36)='n18', dsis(36)='mhs_n18', dval(36)=3.0, dthin(36)=3, dsfcalc(36)=0, dfile(37)='mhsbufr', dtype(37)='mhs', dplat(37)='metop-a', dsis(37)='mhs_metop-a', dval(37)=3.0, dthin(37)=3, dsfcalc(37)=0, dfile(38)='ssmitbufr', dtype(38)='ssmi', dplat(38)='f13', dsis(38)='ssmi_f13', dval(38)=0.0, dthin(38)=4, dsfcalc(38)=0, dfile(39)='ssmitbufr', dtype(39)='ssmi', dplat(39)='f14', dsis(39)='ssmi_f14', dval(39)=0.0, dthin(39)=4, dsfcalc(39)=0, dfile(40)='ssmitbufr', dtype(40)='ssmi', dplat(40)='f15', dsis(40)='ssmi_f15', dval(40)=0.0, dthin(40)=4, dsfcalc(40)=0, dfile(41)='amsrebufr', dtype(41)='amsre_low', dplat(41)='aqua', dsis(41)='amsre_aqua', dval(41)=0.0, dthin(41)=4, dsfcalc(41)=0, dfile(42)='amsrebufr', dtype(42)='amsre_mid', dplat(42)='aqua', dsis(42)='amsre_aqua', dval(42)=0.0, dthin(42)=4, dsfcalc(42)=0, dfile(43)='amsrebufr', dtype(43)='amsre_hig', dplat(43)='aqua', dsis(43)='amsre_aqua', dval(43)=0.0, dthin(43)=4, dsfcalc(43)=0, dfile(44)='ssmisbufr', dtype(44)='ssmis_las', dplat(44)='f16', dsis(44)='ssmis_f16', dval(44)=0.0, dthin(44)=4, dsfcalc(44)=0, dfile(45)='ssmisbufr', dtype(45)='ssmis_uas', dplat(45)='f16', dsis(45)='ssmis_f16', dval(45)=0.0, dthin(45)=4, dsfcalc(45)=0, dfile(46)='ssmisbufr', dtype(46)='ssmis_img', dplat(46)='f16', dsis(46)='ssmis_f16', dval(46)=0.0, dthin(46)=4, dsfcalc(46)=0, dfile(47)='ssmisbufr', dtype(47)='ssmis_env', dplat(47)='f16', dsis(47)='ssmis_f16', dval(47)=0.0, dthin(47)=4, dsfcalc(47)=0, dfile(48)='gsnd1bufr', dtype(48)='sndrd1', dplat(48)='g12', dsis(48)='sndrD1_g12', dval(48)=1.5, dthin(48)=5, dsfcalc(48)=0, dfile(49)='gsnd1bufr', dtype(49)='sndrd2', dplat(49)='g12', dsis(49)='sndrD2_g12', dval(49)=1.5, dthin(49)=5, dsfcalc(49)=0, dfile(50)='gsnd1bufr', dtype(50)='sndrd3', dplat(50)='g12', dsis(50)='sndrD3_g12', dval(50)=1.5, dthin(50)=5, dsfcalc(50)=0, dfile(51)='gsnd1bufr', dtype(51)='sndrd4', dplat(51)='g12', dsis(51)='sndrD4_g12', dval(51)=1.5, dthin(51)=5, dsfcalc(51)=0, dfile(52)='gsnd1bufr', dtype(52)='sndrd1', dplat(52)='g11', dsis(52)='sndrD1_g11', dval(52)=1.5, dthin(52)=5, dsfcalc(52)=0, dfile(53)='gsnd1bufr', dtype(53)='sndrd2', dplat(53)='g11', dsis(53)='sndrD2_g11', dval(53)=1.5, dthin(53)=5, dsfcalc(53)=0, dfile(54)='gsnd1bufr', dtype(54)='sndrd3', dplat(54)='g11', dsis(54)='sndrD3_g11', dval(54)=1.5, dthin(54)=5, dsfcalc(54)=0, dfile(55)='gsnd1bufr', dtype(55)='sndrd4', dplat(55)='g11', dsis(55)='sndrD4_g11', dval(55)=1.5, dthin(55)=5, dsfcalc(55)=0, dfile(56)='gsnd1bufr', dtype(56)='sndrd1', dplat(56)='g13', dsis(56)='sndrD1_g13', dval(56)=1.5, dthin(56)=5, dsfcalc(56)=0, dfile(57)='gsnd1bufr', dtype(57)='sndrd2', dplat(57)='g13', dsis(57)='sndrD2_g13', dval(57)=1.5, dthin(57)=5, dsfcalc(57)=0, dfile(58)='gsnd1bufr', dtype(58)='sndrd3', dplat(58)='g13', dsis(58)='sndrD3_g13', dval(58)=1.5, dthin(58)=5, dsfcalc(58)=0, dfile(59)='gsnd1bufr', dtype(59)='sndrd4', dplat(59)='g13', dsis(59)='sndrD4_g13', dval(59)=1.5, dthin(59)=5, dsfcalc(59)=0, dfile(60)='iasibufr', dtype(60)='iasi', dplat(60)='metop-a', dsis(60)='iasi_metop-a', dval(60)=20.0, dthin(60)=1, dsfcalc(60)=0, dfile(61)='gomebufr', dtype(61)='gome', dplat(61)='metop-a', dsis(61)='gome_metop-a', dval(61)=1.0, dthin(61)=6, dsfcalc(61)=0, dfile(62)='omibufr', dtype(62)='omi', dplat(62)='aura', dsis(62)='omi_aura', dval(62)=1.0, dthin(62)=6, dsfcalc(62)=0, dfile(63)='sbuvbufr', dtype(63)='sbuv2', dplat(63)='n19', dsis(63)='sbuv8_n19', dval(63)=1.0, dthin(63)=0, dsfcalc(63)=0, dfile(64)='hirs4bufr', dtype(64)='hirs4', dplat(64)='n19', dsis(64)='hirs4_n19', dval(64)=6.0, dthin(64)=1, dsfcalc(64)=0, dfile(65)='amsuabufr', dtype(65)='amsua', dplat(65)='n19', dsis(65)='amsua_n19', dval(65)=10.0, dthin(65)=2, dsfcalc(65)=0, dfile(66)='mhsbufr', dtype(66)='mhs', dplat(66)='n19', dsis(66)='mhs_n19', dval(66)=3.0, dthin(66)=3, dsfcalc(66)=0, dfile(67)='tcvitl' dtype(67)='tcp', dplat(67)=' ', dsis(67)='tcp', dval(67)=1.0, dthin(67)=0, dsfcalc(67)=0, $OBSINPUT / &SUPEROB_RADAR $SUPERRAD / &LAG_DATA $LAGDATA / &HYBRID_ENSEMBLE l_hyb_ens=.false.,uv_hyb_ens=.false.,aniso_a_en=.false.,generate_ens=.false., n_ens=0,beta1_inv=0.5,s_ens_h=750,s_ens_v=20,jcap_ens=${JCAP_EN}, jcap_ens_test=190,nlon_ens=576,nlat_ens=288, write_ens_sprd=.false., $HYBRID_ENSEMBLE / &SINGLEOB_TEST maginnov=0.1,magoberr=0.1,oneob_type='t', oblat=45.,oblon=180.,obpres=1000.,obdattim=${CDATE}, obhourset=0., $SINGLEOB / EOF ls -l $PGM echo "executing $PGM at `date`" # Run global_gsi eval $PGM < gsiparm.anl $REDOUT$PGMOUT $REDERR$PGMERR rc=$? echo "done executing $PGM at `date`" else echo "some input files missing, exiting ..." ls -l $GBIAS ls -l $GSATANG ls -l $SFCGES ls -l $SFCG03 ls -l $SFCG09 ls -l $SIGGES ls -l $SIGG03 ls -l $SIGG09 ls -l $SFCANL exit 1 fi export ERR=$? export err=$ERR #$ERRSCRIPT||exit 2 # Cat runtime output files. cat fort.2* > $GSISTAT cat fort.2* # Loop over first and last outer loops to generate innovation # diagnostic files for indicated observation types (groups) # # NOTE: Since we set miter=2 in GSI namelist SETUP, outer # loop 03 will contain innovations with respect to # the analysis. Creation of o-a innovation files # is triggered by write_diag(3)=.true. The setting # write_diag(1)=.true. turns on creation of o-g # innovation files. # if [[ "${charnanal}" = "ensmean" ]]; then cd ${DATA} tar -cvf obs_input.${CDATE}.tar obs_input* ${NCP} obs_input.${CDATE}.tar ${COMOUT}/ fi #loops="01 03" loops="01" # only save fit to first-guess pwd #ls -l ${DATA} for loop in $loops; do # Collect diagnostic files for obs types (groups) below list="hirs2_n14 msu_n14 sndr_g08 sndr_g10 sndr_g11 sndr_g12 sndr_g13 sndr_g08_prep sndr_g10_prep sndr_g11_prep sndr_g12_prep sndr_g13_prep sndrd1_g11 sndrd2_g11 sndrd3_g11 sndrd4_g11 sndrd1_g12 sndrd2_g12 sndrd3_g12 sndrd4_g12 sndrd1_g13 sndrd2_g13 sndrd3_g13 sndrd4_g13 hirs3_n15 hirs3_n16 hirs3_n17 amsua_n15 amsua_n16 amsua_n17 amsub_n15 amsub_n16 amsub_n17 hsb_aqua airs_aqua amsua_aqua imgr_g08 imgr_g10 imgr_g12 pcp_ssmi_dmsp pcp_tmi_trmm conv sbuv2_n16 sbuv2_n17 sbuv2_n18 omi_aura ssmi_f13 ssmi_f14 ssmi_f15 hirs4_n18 amsua_n18 mhs_n18 amsre_low_aqua amsre_mid_aqua amsre_hig_aqua ssmis_las_f16 ssmis_uas_f16 ssmis_img_f16 ssmis_env_f16 iasi_metop-a amsua_metop-a mhs_metop-a hirs4_metop-a" for type in $list; do #count=`ls ${DATA}/*${type}_${loop}* | wc -l` count=`ls ${DATA}/dir.*/${type}_${loop}* | wc -l` if [[ count -gt 0 ]]; then #cat ${DATA}/${type}_${loop}.* > ${DATA}/diag_${type}_${loop}.${CDATE} #cat ${DATA}/${type}_${loop}.* > ${COMOUT}/diag_${type}_ges.${CDATE}_${charnanal} #cat ${DATA}/*${type}_${loop}* > diag_${type}.${CDATE} cat ${DATA}/dir.*/${type}_${loop}* > ${DATA}/diag_${type}.${CDATE} if [ $SAVEHX == ".true." ]; then /bin/cp -f diag_${type}.${CDATE} ${COMOUT}/diag_${type}_ges.${CDATE}_${charnanal} fi #if [[ "$loop" = "01" ]]; then # #mv ${DATA}/diag_${type}_${loop}.${CDATE} ${DATA}/diag_${type}_ges.${CDATE} # mv ${DATA}/diag_${type}_${loop}.${CDATE} ${COMOUT}/diag_${type}_ges.${CDATE}_${charnanal} #elif [[ "$loop" = "03" ]]; then # mv ${DATA}/diag_${type}_${loop}.${CDATE} ${DATA}/diag_${type}_anl.${CDATE} #else # mv ${DATA}/diag_${type}_${loop}.${CDATE} ${DATA}/diag_${type}_${loop}.${CDATE} #fi fi done done if [ $ONEOB_TEST == ".true." ]; then echo "copy prepqc ..." ls -l prepqc /bin/mv -f prepqc ${COMOUT}/prepqc_oneob ls -l ${COMOUT}/prepqc_oneob exit 0 fi # stop here? #if [ $SKIP_ANGUPDATE == ".true." ]; then # #/bin/rm -rf $HOSTFILE # exit 0 #fi if [ -n "$CONVONLY" ]; then exit 0 fi ################################################################################ # Update angle dependent bias export XLSMPOPTS="parthds=$NTHREADS:stack=$NTHSTACK" export PGM=$ANGUPDATEXEC export pgm=$PGM $LOGSCRIPT iy=$(echo $CDATE|cut -c1-4) im=$(echo $CDATE|cut -c5-6) id=$(echo $CDATE|cut -c7-8) ih=$(echo $CDATE|cut -c9-10) # local input files assumed to already exist are # ./satbias_ang.in # radiance diagnostic files if [[ -s satbias_ang.in ]]; then cp ./satbias_angle ./satbias_ang.in fi cat > global_angupdate.nml <