📄 makefile
字号:
$(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(OPTTSMASTER) touch stamp-opttsstamp-symm1: $(RUN) $(SYMM1MASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(SYMM1MASTER) touch stamp-symm1stamp-symm2: $(RUN) $(SYMM2MASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(SYMM2MASTER) touch stamp-symm2stamp-symm3: $(RUN) $(SYMM3MASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(SYMM3MASTER) touch stamp-symm3stamp-clscf: $(RUN) $(CLSCFMASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(CLSCFMASTER) touch stamp-clscfstamp-uscf: $(RUN) $(USCFMASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(USCFMASTER) touch stamp-uscfstamp-hsosscf: $(RUN) $(HSOSSCFMASTER) $(INPUTGENDEPS) $(MAKEIN) -p $(PROGRAM) -I$(SRCDIR) -d $(RUN) $(HSOSSCFMASTER) touch stamp-hsosscf##############################################################################.PHONY: checkruncheckrun: checkckpt checkmbpt checksymm1 checksymm2 checksymm3 checkdft @echo Check for complete outputs in the run directory: for file in $(ALLOUTPUTS); \ do \ ($(CHECKOUT) $${file} ); \ done.PHONY: checkh2ofrqcheckh2ofrq: @echo Consistency checks on h2o frequency tests: @$(CHECKOUT) $(RUN)/h2ofrq_scfsto3g{c1,c2v}frq.out @$(CHECKOUT) $(RUN)/h2ofrq_scfsto3g{c1,c2v}optfrq.out @$(CHECKOUT) $(RUN)/h2ofrq_mp200sto3g{c1,c2v}frq.out @$(CHECKOUT) $(RUN)/h2ofrq_mp200sto3g{c1,c2v}optfrq.out @$(CHECKOUT) $(RUN)/h2ofrq_scf6311gss{c1,c2v}frq.out @$(CHECKOUT) $(RUN)/h2ofrq_scf6311gss{c1,c2v}optfrq.out @$(CHECKOUT) $(RUN)/h2ofrq_mp2006311gss{c1,c2v}frq.out @$(CHECKOUT) $(RUN)/h2ofrq_mp2006311gss{c1,c2v}optfrq.out.PHONY: checkckptcheckckpt: @echo Consistency checks on checkpoint tests: @$(CHECKOUT) $(RUN)/ckpt_1hsosscf.out $(RUN)/ckpt_hsosscf.out @$(CHECKOUT) $(RUN)/ckpt_1clscf.out $(RUN)/ckpt_clscf.out @$(CHECKOUT) $(RUN)/ckpt_1mp2.out $(RUN)/ckpt_mp2.out @$(CHECKOUT) $(RUN)/ckpt_qnewtopt.out $(RUN)/ckpt_2qnewtopt.out @$(CHECKOUT) $(RUN)/ckpt_efcopt.out $(RUN)/ckpt_2efcopt.out @$(CHECKOUT) $(RUN)/ckpt_0zapt2.out $(RUN)/ckpt_1zapt2.out @$(CHECKOUT) $(RUN)/ckpt_clksxalpha.out $(RUN)/ckpt_1clksxalpha.out @$(CHECKOUT) $(RUN)/ckpt_clksb3lyp.out $(RUN)/ckpt_1clksb3lyp.out @$(CHECKOUT) $(RUN)/ckpt_clksbp86.out $(RUN)/ckpt_1clksbp86.out @$(CHECKOUT) $(RUN)/ckpt_clkshfg96.out $(RUN)/ckpt_1clkshfg96.out @$(CHECKOUT) $(RUN)/ckpt_clksmpwpw91.out $(RUN)/ckpt_1clksmpwpw91.out @$(CHECKOUT) $(RUN)/ckpt_clkspbe.out $(RUN)/ckpt_1clkspbe.out @$(CHECKOUT) $(RUN)/ckpt_clkspw91.out $(RUN)/ckpt_1clkspw91.out @$(CHECKOUT) $(RUN)/ckpt_clksspz81.out $(RUN)/ckpt_1clksspz81.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn1.out $(RUN)/ckpt_1clkssvwn1.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn1rpa.out $(RUN)/ckpt_1clkssvwn1rpa.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn2.out $(RUN)/ckpt_1clkssvwn2.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn3.out $(RUN)/ckpt_1clkssvwn3.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn4.out $(RUN)/ckpt_1clkssvwn4.out @$(CHECKOUT) $(RUN)/ckpt_clkssvwn5.out $(RUN)/ckpt_1clkssvwn5.out @$(CHECKOUT) $(RUN)/ckpt_hsosksxalpha.out $(RUN)/ckpt_1hsosksxalpha.out @$(CHECKOUT) $(RUN)/ckpt_uksxalpha.out $(RUN)/ckpt_1uksxalpha.out.PHONY: checkmbptcheckmbpt: @echo Consistency checks on MBPT tests: @$(CHECKOUT) $(RUN)/mbpt_zapt2{v1,v2}.out @$(CHECKOUT) $(RUN)/mbpt_zapt2{v1,v2lb}.out @$(CHECKOUT) $(RUN)/mbpt_opt12{v1,v2}.out @$(CHECKOUT) $(RUN)/mbpt_opt12{v1,v2lb}.out @$(CHECKOUT) $(RUN)/mbpt_opt22{v1,v2}.out @$(CHECKOUT) $(RUN)/mbpt_opt22{v1,v2lb}.out @$(CHECKOUT) $(RUN)/mbpt_mp2{v1,v2}.out @$(CHECKOUT) $(RUN)/mbpt_mp2{v1,v2lb}.out @$(CHECKOUT) $(RUN)/mbpt_mp2{v1,mem}.out @$(CHECKOUT) $(RUN)/mbpt_mp2{v1,mem_c1}.out @$(CHECKOUT) $(RUN)/mbpt_mp2{v1,mem_auto}.out @$(CHECKOUT) $(RUN)/mbpt_mp2r12_ne2{,_posix}.out @$(CHECKOUT) $(RUN)/mbpt_mp2r12_ne2{,_multipass}.out.PHONY: checkdftcheckdft: @echo Consistency checks on DFT tests: for mol in h2 lih beh2 b2h6 nh3 ch4 c2h4 c2h2 h2o hf \ nah mgh2 alh sih2 ph3 h2s hcl; \ do (\ $(CHECKOUT) $(RUN)/dft_$${mol}hfs{ultrafine,}631gs*.out \ ); done.PHONY: checksymm1checksymm1: @echo Consistency checks on symmetry test series 1: @for b in sto3g; \ do (\ $(CHECKOUT) $(RUN)/symm1_{c2h2scf$${b}c1,c2h2scf$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2scf$${b}c1,c2h2scf$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2scf$${b}c1,c2h2scf$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2scf$${b}c1,c2h2scf$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2scf$${b}c1,c2h2scf$${b}d2h}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubscf$${b}c1,cubscf$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubscf$${b}c1,cubscf$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubscf$${b}c1,cubscf$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubscf$${b}c1,cubscf$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubscf$${b}c1,cubscf$${b}d2h}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2mp222$${b}c1,c2h2mp222$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2mp222$${b}c1,c2h2mp222$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2mp222$${b}c1,c2h2mp222$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2mp222$${b}c1,c2h2mp222$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm1_{c2h2mp222$${b}c1,c2h2mp222$${b}d2h}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubmp284$${b}c1,cubmp284$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubmp284$${b}c1,cubmp284$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubmp284$${b}c1,cubmp284$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubmp284$${b}c1,cubmp284$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm1_{cubmp284$${b}c1,cubmp284$${b}d2h}.out;\ ); done.PHONY: checksymm2checksymm2: @echo Consistency checks on symmetry test series 2: @for b in ccpvdz ccpvtz ccpvqz ccpv5z; \ do (\ $(CHECKOUT) $(RUN)/symm2_{c2h2scf$${b}c1,c2h2scf$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm2_{c2h2scf$${b}c1,c2h2scf$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm2_{c2h2scf$${b}c1,c2h2scf$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm2_{c2h2scf$${b}c1,c2h2scf$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm2_{c2h2scf$${b}c1,c2h2scf$${b}d2h}.out;\ $(CHECKOUT) $(RUN)/symm2_{c2h2nsscf$${b}auto,c2h2scf$${b}c1}.out;\ $(CHECKOUT) $(RUN)/symm2_{cubscf$${b}c1,cubscf$${b}ci}.out;\ $(CHECKOUT) $(RUN)/symm2_{cubscf$${b}c1,cubscf$${b}c2}.out;\ $(CHECKOUT) $(RUN)/symm2_{cubscf$${b}c1,cubscf$${b}cs}.out;\ $(CHECKOUT) $(RUN)/symm2_{cubscf$${b}c1,cubscf$${b}c2v}.out;\ $(CHECKOUT) $(RUN)/symm2_{cubscf$${b}c1,cubscf$${b}d2h}.out;\ ); done.PHONY: checksymm3checksymm3: @for o in $(SYMM3OUTPUTS); \ do ( \ expect=`echo $${o}|sed 's/^.*symm3_.*_\(.*\)_.*$$/\1/'`; \ actual=`grep 'g point g' $${o}|sed 's/^.*to \(.*\)$$/\1/'`; \ echo $${o}: expected $${expect} got $${actual}; \ ); done# check all outputs in the ref directory with outputs in the run directory.PHONY: checkcheck: @echo Comparing outputs in run and ref directories: $(CHECKOUT) -d ref run# Check all outputs files defined in this makefile in the ref directory# with those in the run directory. This will break on some platforms# since a very long argument list is used..PHONY: fastcheckcheckall: @echo Comparing outputs in run and ref directories: $(CHECKOUT) -r $(ALLOUTPUTS).PHONY: diffdiff: -diff -ur $(REF) $(RUN)##############################################################################$(RUN): mkdir -p $(RUN)$(RUN)/ckpt_%.in: ckpt/ckpt_%.in @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_0clks%.qci: ckpt/energy.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_1clks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_clks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_0hsosks%.qci: ckpt/energy.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_1hsosks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_hsosks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_0uks%.qci: ckpt/energy.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_1uks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_uks%.qci: ckpt/gradient.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/ckpt_%.qci: ckpt/ckpt_%.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/mbpt_%.in: mbpt/mbpt_%.in @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/mbpt_%.qci: mbpt/mbpt_%.qci @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/methods_%.in: methods/%.in @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/methods_%.qci: methods/%.in @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/input_%.in: input/%.in @mkdir -p $(RUN) /bin/cp $< $@$(RUN)/input_%opt.qci: @mkdir -p $(RUN) (echo "method: generic"; echo "optimize: yes") > $@$(RUN)/input_%.qci: @mkdir -p $(RUN) (echo "method: generic"; echo "optimize: no") > $@$(RUN)/%.out: $(RUN)/%.in (cd $(RUN); $(MPQC) -f `basename $<` >& `basename $@`)##############################################################################.PHONY: cleanclean: /bin/rm stamp-*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -