CHARMM Development Project
Good Morning.

I tried to use the CVEL command and received this error:

CHARMM>

CHARMM> !!!Note: probably need to constrain cor2
CHARMM>

CHARMM> cvel

CVELOCI> SETING UP VECTOR DIRECTIVES


***** LEVEL 0 WARNING FROM *****
***** CVELOCI code not compiled
******************************************
BOMLEV ( 0) IS REACHED - TERMINATING. WRNLEV IS 5

I think there is also output files from the CHARMM-GUI that use this command.

But, the cmake mode doesn't have an option for compiling CHARMM with the CVEL option turned on.

Can someone help with this?

Thanks so much.

Regards,

Angelo
Only more widely used features have explicit "--with-" options. Other features require the use the "-a" option to configure, in this case "-a CVELOCI" (but w/o the quotes).
Thanks so much Rick. I tried -a CVELO. I did not know to try -a CVELOCI.

Regards,

Anglo
It does not seem to be documented anywhere.

The CVELOCI in the error message was a strong hint, but I had the check the source code to verify. The feature keywords are prefixed by KEY_ in the preprocessor directives.

"Use the source, Luke."
Hello everyone,

../configure --without-mpi --without-openmm -a veloci

0r

../configure --without-mpi --without-openmm --add veloci

Sat Jan 29 16:06:14 [rossi@debian build]$ls
CMakeCache.txt CMakeFiles/ Makefile c_files.cmake cmake_install.cmake cxx_files.cmake fortran_files.cmake keywords.inc pref.dat revid.h
Sat Jan 29 16:06:15 [rossi@debian build]$

fortran_files.cmake:
...
source/dynamc/avfl_ucell.F90
source/dynamc/consph.F90
source/dynamc/cveloci.F90
source/dynamc/cvio.F90
source/dynamc/dcntrl.F90
...

keywords.inc:
...
"UNIX", &
"VALBOND", &
"VELOCI", &
"WCA" ]

pref.dat:
...
QUANTUM
QCHEM
VELOCI
END

and this is the result

CHARMM> set speed 0.0001
Parameter: SPEED <- "0.0001"

CHARMM> define p1 select ATOM DATM 1 DUM end
SELRPN> 1 atoms have been selected out of 1002

CHARMM> define p2 select ATOM DATM 2 DUM end
SELRPN> 1 atoms have been selected out of 1002

CHARMM>

CHARMM> cvel @speed select p1 end select p2 end
Parameter: SPEED -> "0.0001"

CVELOCI> SETING UP VECTOR DIRECTIVES


***** LEVEL 0 WARNING FROM *****
***** CVELOCI code not compiled
******************************************
BOMLEV ( -1) IS NOT REACHED. WRNLEV IS 5

**** Warning **** The following extraneous characters
were found while command processing in CHARMM
0.0001 SELECT P1 END SELECT P2 END

CHARMM>

CHARMM> stop

I worked on this for a couple of hours poking around and modifying the configure attributes, and it still won't work.

CVELOC is in there ... just like it's in the spaghetti source:
nm charmm | grep -i cveloc
000000000004fe90 T __cveloci_mod_MOD_cveloci

but looking at the code I can't tell if
#if KEY_CVELOCI==1 /*cveloci_fcm*/
! impulse
! Purpose:
! atoms that assigned a constant velocity
!
! Variable Purpose
! LCVEL logical: is impulse on or not
! NCVEL total number in FCVEL
! FCVEL(NCVEL) array with impulsed atom ids
! VCVEL(3,NCVEL) array with impule velocity (Ang/AKMA time)
!

CVELOC is really set to 1.

Also, ../configure --without-mpi --without-openmm, i.e. without "-a cveloci" produces the same"fortran_files.cmake" file that includes "source/dynamc/cveloci.F90".
The "keywords.inc" and "pref.dat" files DO NOT include any reference to CVELOCI

I think it's a BUG somewhere really.

Help.

Regards,

Angelo
Hello, it is working now. I apologize for any inconvenience.
But all the stuff in the previous post is correct.

Regards,

Angelo
So what was the problem and how did you resolve it? Useful info for others who run into this or a similar issue.
It should be noted that the file cveloci.F90 will be in the cmake list, as it is compiled regardless; if the CVELOCI keyword is not specified via -a (--add) on the configure command line (or misspelled), the code produced is a stub routine, that just prints the error message. The keywords are embedded in compiler directives, e.g.

Code
#if KEY_CVELOCI==1 /*cvel_main*/
      :
    main code
      :
#else /*  (cvel_main)*/
    CALL WRNDIE(0,'<CVELOCI>','CVELOCI code not compiled')
#endif /* (cvel_main)*/
    RETURN

Note the KEY_ prefix in the directive; the 'main code' is the bulk of the actual subroutine. The cveloci.mod files produced with and without the feature should exist, but they should be different in size and contents.
Dear Rick,

Thanks so much for your help and insight.

Dear Lennart,

Do I have to tell you? I feel stupid about this.

As you probably are aware, I have been doing lots of CHARMM builds lately. And I did this from a BUILD sub-directory in the main CHARMM directory.

1. I used the command ../configure -a CVELO
But, it wasn't correct. Please see Rick's answer, above.

2. After I got an answer from Rick indicating it should be -a CVELOCI, I performed a "make clean" command which left cmake files and directories in the BUILD sub-directory, and then I used ../configure -a CVELOCI
(OK, I did this a few times, after each time that the cvel command wouldn't work; I was in a make clean <--> ../configure DO LOOP)

4. Then I finally did the following: rm -R -f BUILD; mkdir BUILD; cd BUILD; ../configure -a CVELOCI, and cvel commands were now accepted.

So, I think the answer is to use a clean BUILD sub-directory each time one performs a ../configure command.

Again, I apologize any inconvenience this caused.

Regards,

Angelo
© CHARMM forums