diff --git a/local/pkgs/vasp-gpu/constr_cell_relax.F b/local/pkgs/vasp-gpu/constr_cell_relax.F new file mode 100644 index 00000000..9939c30a --- /dev/null +++ b/local/pkgs/vasp-gpu/constr_cell_relax.F @@ -0,0 +1,22 @@ +SUBROUTINE CONSTR_CELL_RELAX(FCELL) + USE prec + REAL(q) FCELL(3,3) + + LOGICAL FILFLG + INTEGER ICELL(3,3) + INQUIRE(FILE='OPTCELL',EXIST=FILFLG) + IF (FILFLG) THEN + OPEN(67,FILE='OPTCELL',FORM='FORMATTED',STATUS='OLD') + DO J=1,3 + READ(67,"(3I1)") (ICELL(I,J),I=1,3) + ENDDO + CLOSE(67) + DO J=1,3 + DO I=1,3 + IF (ICELL(I,J)==0) FCELL(I,J)=0.0 + ENDDO + ENDDO + ENDIF + + RETURN +END SUBROUTINE diff --git a/local/pkgs/vasp-gpu/default.nix b/local/pkgs/vasp-gpu/default.nix index 86e773b3..ea6760ca 100644 --- a/local/pkgs/vasp-gpu/default.nix +++ b/local/pkgs/vasp-gpu/default.nix @@ -42,7 +42,11 @@ let hashMode = "recursive"; message = "Source file not found."; }; - configurePhase = "cp ${include version} makefile.include"; + configurePhase = + '' + cp ${include version} makefile.include + cp ${./constr_cell_relax.F} src/constr_cell_relax.F + ''; enableParallelBuilding = true; buildInputs = [ mkl hdf5 wannier90 ]; nativeBuildInputs = [ gfortran rsync which ];