Code: Select all
LABINT(ITYP) = 'FC '//NAMDEP(NUCPRE(IATOM)+1)(1:3)
& //CHRNOS(IPTNUC(IATOM,IREP)/10)//
& CHRNOS(MOD(IPTNUC(IATOM,IREP),10))
CHARACTER*1 CHRNOS(0:9)
in chrnos.h, which originally contains the single characters '0', '1'...'9', to be
CHARACTER*1 CHRNOS(0:15)
with elements that are now the single character hexadecimal "digits" '0'...'F'. This admits labels up to a decimal value of 255. In principal one could use the whole alphabet, but I think this is neither aesthetic nor desirable. (I note here that a bit of grepping suggests there is at least one place in the code (CC response) where this array, dimensioned (0:9), is hardwired into the code, not included as a header file.)
A similar problem arises with the SD property integral labels, but the kludge above takes care of this, too. Nevertheless, I include the code fragment from her1pro.F for the label generation here because it figures in the problem with lagrang.F
Code: Select all
IFIRST = ISCOR1/100
ISECND = MOD(ISCOR1,100)/10
ITHIRD = MOD(MOD(ISCOR1,100),10)
IF (INTTYP .EQ. 11) THEN
LABINT(ITYP) = 'SD '//CHRNOS(IFIRST)
& //CHRNOS(ISECND)
& //CHRNOS(ITHIRD)//' '
& //CHRXYZ(-ICOOR2)
Code: Select all
LABINT(NCOOR) = 'SD '//CHRNOS(ISCOR1/100)
* //CHRNOS(ISCOR1/10)
* //CHRNOS(MOD(ISCOR1,10))
* //' '//CHRXYZ(-ICOOR2)
Code: Select all
LABINT(NCOOR) = 'SD '//CHRNOS(ISCOR1/100)
* //CHRNOS(mod(ISCOR1,100)/10)
* //CHRNOS(mod(MOD(ISCOR1,100),10))
* //' '//CHRXYZ(-ICOOR2)
Incidentally, I do not really understand why the code is written in this way, using MOD calls. Internal files were available in Fortran77 and the labels could have been written with a formatted WRITE statement.
Best regards
Pete