Re: Problem with EOF "sub drveof: ier, jopt= 10 0 returned from vcmssm/crmssm"

From: Dennis Shea <shea_at_nyahnyahspammersnyahnyah>
Date: Sat Apr 12 2014 - 08:32:47 MDT

1] What version of NCL are you using?
     That error message if from a subroutine used by a
     *very old* (5+ years) version of the EOF code.

    On the other hand, the included output has

> matrix : covariance
> method : no transpose

    This is from the newer version of the code.
    To me, it looks like there is some issue with your installation

     PLEASE upgrade to the current version of NCL (6.2.0) and put
     it in a new directory and set the NCARG_ROOT environment
     variable to the appropriate directory

           http://www.ncl.ucar.edu/Download/

[2] The very old EOF code had:
     The error message is issued if the size of the 'space' or
     'time' dimension is less than 1.

       SUBROUTINE DVCMSSM(X,NROW,NCOL,NRT,NCS,XMSG,VCM,LVCM,IER)
[snip]
c this routine will calculate the variance-couariance matrix (vcm)
c . of the array x containing missing data. obviously if x does
c . contain missing data then vcm is only an approximation.

c note : symmetric storage mode is utilized for vcm to save space.

c input:
c x - input data array ( unchanged on output)
c nrow,ncol- exact dimensions of x in calling routine
c nrt,ncs - dimension of sub-matrix which contains the data
c (nrt <= nrow : ncs <= ncol)
c xmsg - missing data code (if none set to some no. not
c encountered)
c output:
c vcm - var-cov matrix
c lvcm - length of vcm
c ier - error code (if ier=-1 then vcm contains missing entry)

       DIMENSION X(1:NROW,1:NCOL),VCM(*)

       IER = 0
       IF (NROW.LT.1 .OR. NCOL.LT.1) IER = IER + 1
c+++++++++++++++++++++++++++++++++++++++++++++++++++++
       IF (NRT.LT.1 .OR. NCS.LT.1) IER = IER + 10 ! <****************
c+++++++++++++++++++++++++++++++++++++++++++++++++++++
       IF (IER.NE.0) RETURN

[3] You should always in include the output from 'printVarSummary(...)'
     for the variables being used. In your case:

      printVarSummary(SST_HIST)
      printVarSummary(ts_hist)

On 4/11/14, 4:41 AM, Jayasankar C B wrote:
> Respected Sir,
>
> I am trying to do EOF analysis with 50 year HadISST data.
> I am using a 13 year low pass filter.
> Script is given below.
> I am getting an error like..
>
> sub drveof: ier,jopt= 10 0 returned from vcmssm/crmssm
> warning:eofunc: 10 eigenvectors failed to converge
> warning:eofunc_ts: 2 eigenvectors failed to converge
>
> Variable: eof
> Type: float
> Total Size: 22320 bytes
> 5580 values
> Number of Dimensions: 3
> Dimensions and sizes: [evn | 1] x [lat | 31] x [lon | 180]
> Coordinates:
> evn: [1..1]
> lat: [ -30.. 30]
> lon: [ 0.. 358]
> Number Of Attributes: 6
> eval : -9.99e+08
> pcvar : -9.99e+08
> matrix : covariance
> method : no transpose
> _FillValue : -9.99e+08
> long_name : EOF: SST
> (0)
> (0) EOF: SST: min=-9.99e+08 max=-9.99e+08
> warning:ContourPlotInitialize: no valid values in scalar field; ContourPlot
> not possible:[errno=1101]
>
>
> please help me to solve this problem.
>
>
>
>
>
>
>
>
> ;***********************************************************
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
> load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl"
>
> begin
>
> latS = -30.
> latN = 30.
> lonL = 0.
> lonR = 360.
> nyrs = 50 ;50 year data
> neof = 1 ; number of EOFs
> optEOF = True
> optEOF@jopt = 0 ; This is the default; most commonly used; no need to
> specify.
>
> optETS = False
>
> ;************************************************
> ; create LowPass Filter
> ;************************************************
> nwt = 27
> fca = 1/13.
> ihp = 1
> nsigma = 1.
> wgt = filwgts_lanczos (nwt, ihp, fca, -999., nsigma)
>
> ;***********************************************************
> ; Find the indicies (subscripts) corresponding to the start/end times
> ;***********************************************************
> f1 = addfile
> ("/home/jayasankar/Desktop/4_RCP_WORK/IITB_cnf/EOF/Scott_power/obs/
> sst_jjas_obs.nc", "r")
>
> sst_hist = f1->sst
> ; printVarSummary(sst_hist)
> ; printMinMax(sst_hist, True)
>
> ;************************************************
> ; Apply the low pass filter to the original anomalies
> ;************************************************
> SST_HIST = wgt_runave_Wrap (sst_hist(lat|:, lon|:, time|:), wgt, 0)
>
> ;print(SST_HIST)
> ts_hist = SST_HIST({lat|latS:latN},{lon|lonL:lonR},time|:)
> eof = eofunc_Wrap(ts_hist, neof, False)
> eof_ts = eofunc_ts_Wrap(ts_hist,eof,False)
>
> ;************************************************
> printVarSummary( eof )
> printMinMax(eof, True)
>
> wks = gsn_open_wks("pdf","eof_v1")
> gsn_define_colormap(wks,"BlueDarkRed18") ; choose colormap
> plot = new(neof,graphic) ; create graphic array
> ; only needed if paneling
> ; EOF patterns
>
> res = True
> res@gsnDraw = False ; don't draw yet
> res@gsnFrame = False ; don't advance frame yet
>
> ;---This resource not needed in V6.1.0
> res@gsnSpreadColors = True ; spread out color table
>
> res@gsnAddCyclic = False ; plotted data are not cyclic
>
> res@mpFillOn = False ; turn off map fill
> res@mpMinLatF = latS ; zoom in on map
> res@mpMaxLatF = latN
> res@mpMinLonF = lonL
> res@mpMaxLonF = lonR
> res@mpCenterLonF = (res@mpMinLonF+res@mpMaxLonF)/2.
>
> res@tmXBLabelFontHeightF = 0.0125
> res@tmXBLabelFont = 26
> res@tmYLLabelFontHeightF = 0.0125
> res@tmYLLabelFont = 26
>
> res@cnFillOn = True ; turn on color fill
> res@cnLinesOn = False ; True is default
> res@lbLabelBarOn = False ; turn off individual lb's
>
>
> ; panel plot only resources
> resP = True ; modify the panel plot
> resP@gsnMaximize = True ; large format
> resP@gsnPanelLabelBar = True ; add common colorbar
> resP@lbLabelAutoStride = True ; auto stride on labels
> resP@lbLabelFontHeightF = 0.0125 ; make labels smaller
> resP@lbLabelFont = 26
>
>
> ;*******************************************
> ; first plot
> ;*******************************************
> do n=0,neof-1
> res@gsnLeftString = "EOF "+(n+1)
> plot(n)=gsn_csm_contour_map_ce(wks,eof(n,:,:),res)
> end do
> gsn_panel(wks,plot,(/neof,1/),resP) ; now draw as one plot
> end
>
>
>
> _______________________________________________
> ncl-talk mailing list
> List instructions, subscriber options, unsubscribe:
> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>
_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Sat Apr 12 08:32:59 2014

This archive was generated by hypermail 2.1.8 : Tue Apr 15 2014 - 10:45:19 MDT