Then, I searched the input parameter documents, and found that iatfix/iatfixx/iaxfixy/iatfixz can satisfy my requirement.
Therefore, my input file is:
ndtset 11
natom 20
ntypat 3
znucl 5 7 1
typat 9*1 9*2 2*3
acell 2*xxxxx xxxxx Angstrom
angdeg 90 90 120
xred:
0.2222222288449608 0.1111111144224802 0.5000000000000000 # B
, 1
..........................................
0.7777777810891470 0.8888888955116270 0.5000000000000000 # N, 18
0.5555555621782941 0.4444444477558135 0.5500000000000000 # H, 19
0.5555555621782941 0.4444444477558135 0.6000000000000000 # H, 20
xred+
0.0000000000000000 0.0000000000000000 0.0000000000000000 # B, 1
...........................................
0.0000000000000000 0.0000000000000000 0.0200000000000000 # H, 20
iatfix 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
iatfixx 20
iatfixy 20
iscf 7
ionmov 2
kptopt 1
nshiftk 1
shiftk 0.0 0.0 0.5
ngkpt xx xx 1
ixc xx
ecut xxx
ecutsigx xxx
nstep xxx
ntime xxx
tolvrs xxx
However, when I run this task, I found the position of B and N ions moved as well.
Is the mothod I am using iatfix wrong? If it was wrong, how could I fix the specified ions at certain direction?