[Wien] "so: Undefined variable" error

Peter Blaha peter.blaha at tuwien.ac.at
Mon Feb 13 10:08:42 CET 2023


Ups.

I'm sorry, for some unknown reasons the qtlpara_lapw script from version 
19 slipped into the WIEN2k_23 distribution, which had 2 bugs already 
fixed in WIEN2k_21.

The correct    qtlpara_lapw    is attached and the corrected version is 
also in the download area (WIEN2k_23.1.tar from 13.2.23).

Copy it into your WIENROOT directory.

Regards

Peter Blaha

Am 13.02.2023 um 01:01 schrieb Tim Williams via Wien:
> Hi,
>
> I have upgraded to 23.1 and encountered an error running qtl
>
> /running LAPW2 in parallel mode/
> /STOP LAPW2 - FERMI; weights written/
> /FERMI only/
> /0.229u 0.063s 0:00.13 215.3%0+0k 0+1312io 0pf+0w/
> /running QTL in parallel mode/
> /calculating QTL's from parallel vectors/
> */so: Undefined variable./*
> /0.015u 0.005s 0:00.01 100.0%0+0k 0+24io 0pf+0w/
> /error: command /home/mcem-admin/wien2k/qtlpara qtl.def   failed/
>
> The SCF ran to convergence (parallel, 6 cores on one Intel machine).
>
> The error somewhat resembles those previously present in x_lapw fixed 
> with the Github patches. “so” is defined in x_lapw (*set so*).
>
> Happy to provide more details but is anyone aware of any need for a 
> patch in 23.1?
>
> Many thanks,
>
> Tim.
>
>
>
> ---
> Dr. Tim Williams
> Transmission Electron Microscope Manager
>
> Monash Centre for Electron Microscopy (MCEM)
> Monash University
> Room 103, 10 Innovation Walk, Clayton Campus
> Wellington Road
> Clayton VIC 3800
> Australia
> T: +61 (0) 3 9902 0721
> M: +61 (0) 401 853 850
> e: timothy.williams at monash.edu
>
> CRICOS Provider: Monash University
> 00008C/01857J
>
> We acknowledge and pay respects to the Elders
> and Traditional Owners of the land on which our
> four Australian campuses stand.
>
>
> _______________________________________________
> Wien mailing list
> Wien at zeus.theochem.tuwien.ac.at
> http://zeus.theochem.tuwien.ac.at/mailman/listinfo/wien
> SEARCH the MAILING-LIST at:http://www.mail-archive.com/wien@zeus.theochem.tuwien.ac.at/index.html

-- 
-----------------------------------------------------------------------
Peter Blaha,  Inst. f. Materials Chemistry, TU Vienna, A-1060 Vienna
Phone: +43-158801165300
Email:peter.blaha at tuwien.ac.at           
WWW:http://www.imc.tuwien.ac.at       WIEN2k:http://www.wien2k.at
-------------------------------------------------------------------------
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://zeus.theochem.tuwien.ac.at/pipermail/wien/attachments/20230213/8ad94e0b/attachment.htm>
-------------- next part --------------
#!/bin/tcsh -f
#

set tmp  = .tmp_qtlpara.$$
set tmp2 = .tmp_qtlpara.$$_2
onintr exit
set name	= $0
set bin		= $name:h	#default directory for WIEN-executables
if !(-d $bin) set bin = .

unalias rm
alias   testinput       'if (! -e \!:1 ||  -z \!:1) goto \!:2'
alias   testerror       'if (! -z \!:1.error) goto error'

set t	    = time  
set log     = :parallel
set defmach = `hostname`
set updn			# spinpolarization switch
set dnup    = 'dn'		# spinpolarization switch
set sc				# semicore-switch
set so
set cmplx
set remote = ssh
set init = init:
set res  = residue:
############################################################################
# In this section use 0 to turn of an option, 1 to turn it on, 
# respectively choose a value

set useremote   = 1             # using remote shell to launch processes
setenv DELAY  0.1             # delay launching of processes by n seconds
setenv SLEEPY 1             # additional sleep before checking
set debug       = 0             # set verbosity of debugging output

############################################################################

############################################################################
# and now we look if we should override the defaults
if (-e $bin/parallel_options) then
        source $bin/parallel_options
endif


if ( $?USE_REMOTE ) then
        set useremote = $USE_REMOTE
endif

############################################################################


if ($#argv < 1) then
	echo usage: $0 deffile
	exit
endif

while ($#argv)
  switch ($1)
  case -h:
  case -H: 
    set help
    shift; breaksw
  case -up:
    set updn = '-up'
    set dnup = '-dn'
    shift; breaksw
  case -dn:
    set updn = '-dn'
    set dnup = '-up'
    shift; breaksw
  case -so:
    set so = 'so'
    shift; breaksw
  default:
    set def = $1:r
    shift; breaksw
  endsw
end

set exe = $bin/qtl
set exe = qtl

#are we running parallel?
testinput .processes single
echo "running QTL in parallel mode"
echo "RUNNING" >.qtlpara

#before we start, we wipe away all parallel error files
if ( -e qtl.error ) rm *qtl*.error
if ( -e upqtl.error ) rm *qtl*.error
if ( -e dnqtl.error ) rm *qtl*.error

if ( -e qtl_1.error ) rm *qtl_*.error
if ( -e upqtl_1.error ) rm *qtl_*.error
if ( -e dnqtl_1.error ) rm *qtl_*.error
if ( -e .timeq_1) rm .timeq_*


if (-e .machines.help) rm .machines.help

grep -v $init .processes|grep : | grep -v $res >$tmp2
set mist     = `wc $tmp2 `
set maxproc  = $mist[1]
set machine  = `grep $init .processes | cut -f2 -d: | xargs`
if ($#machine > $maxproc) then
    set machine  = `grep $init .processes |head -$maxproc| cut -f2 -d: | xargs`
endif
set lockfile = `cut -f2 -d: $tmp2 | awk '{print $1 NR}'|xargs`
set residue  = `grep $res .processes|cut -f2 -d:`
if ($residue == "") unset residue

if ($debug > 0) echo machines: $machine


echo "** " Error in Parallel QTL >$def.error


#get name of case
setenv PWD `pwd|sed "s/tmp_mnt\///"`
setenv PWD $cwd
set case    = $PWD
set case    = $case:t          
if ($case == "") then
  echo "ERROR: cannot detect working directory $cwd -> exit"
  exit 1
endif
if ($debug > 0) echo Setting up case $case for parallel execution
if ($debug > 0) echo of QTL
if ($debug > 0) echo "  "
#
echo "calculating QTL's from parallel vectors"
vec2old_lapw -p -local $so $updn
$exe $def.def $maxproc
rm $tmp* >&/dev/null
echo "DONE" >.qtlpara
exit 0

error:
echo "** " QTL crashed!
echo "** " QTL crashed at `date`>>$log
echo "** " check ERROR FILES! >>$log
echo "-----------------------------------------------------------------">>$log
echo "** " Error in Parallel QTL >>$def.error
rm $tmp* >&/dev/null
echo "ERROR" >.qtlpara
exit 1



More information about the Wien mailing list