computer/programing/Python
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[computer/programing]]
#contents
*環境構築 [#h8f18bb4]
python -V
*エポック [#i79884ec]
#highlighter(python){{
# coding=utf-8
import time
from datetime import datetime
def datetime_to_epoch(d):
return int(time.mktime(d.timetuple()))
def epoch_to_datetime(epoch):
return datetime(*time.localtime(epoch)[:6])
now = datetime.now()
epoch = datetime_to_epoch(now)
epoch_to_datetime(epoch)
# => 2012-10-10 21:12:17
}}
#highlighter(python){{
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#コンパイルスクリプト
# var0.1 09/11/06 by ono
# var0.1.1 09/12/11 by ono
# var0.1.2 10/01/14 by ono
# var0.2 11/04/26 by ono
# translation into python 15/07/07 by hora
#LISTの作り方
#title tem tem pre den tot.mol com nma nmb 識別番号
#wm0054 350 623.15 25 0.62528 2048 0.00 2048 0 scf102
#wm0055 350 623.15 25 0.59254 2048 0.06 1923 125 scf102
#wm0056 350 623.15 25 0.56426 2048 0.10 1843 205 scf103
#wm0057 350 623.15 25 0.48128 2048 0.19 1658 390 scf103
#wm0058 350 623.15 25 0.38857 2048 0.29 1462 586 scf105
import shutil
import os
import glob
import time #getting epoch
import sys
import multiprocessing
import numpy as np
import scflib
start = time.time()
#----------------------------------------------------------------------------------------------
def workpara(datas): #def->definision of function
for x in datas:
files=na.replace('work','')+str(id[x-1].replace('\r',''))+'/'
nc=str(files.replace('\r',''))+str(names[x-1])
os.chdir( nc )
tempfile = os.listdir(nc)
if ('win' in sys.platform):
os.system('ip')
os.system('iv')
os.system(names[x-1])
else:
os.system('./ip')
os.system('./iv')
os.system('./'+names[x-1])
if __name__ == '__main__':
pn=[]
for pathn in open('PATH').readlines(): #作業フォルダのパス取得
pnx=pathn[:-1].split('\t')
pn.append(str(pnx[0]))
na=os.getcwd()
os.chdir( na )
#------------------------------------------------------------------
count=0
a,b,c,d,e,f,g,h,i,j,k,l,m,jobs=[],[],[],[],[],[],[],[],[],[],[],[],[],[]
names,id=[],[]
SPC='SPC.mTR'
OPLS3P='OPLS3P.mTR'
for line in open('LIST').readlines(): #LIST読み込み
condition=line[:-1].split('\t')
names.append(str(condition[0]))
id.append(str(condition[9]))
file = str(condition[0])
nma = float(condition[7])
density = float(condition[4])
temp = float(condition[1])
nmb = float(condition[8])
pressure = float(condition[3])
comp = float(condition[6])
count=count+1
print ("%10s"%file)
print ("%10.4f"%temp)
print ("%10.4f"%pressure)
print ("%10.5f"%density)
print ("%10.2f"%comp)
print ("%10d"%nma)
print ("%10d\n"%nmb)
files = na.replace('work','') + str(condition[9].replace('\r',''))+'/'
nc=str(files)+file
models=na+'/src/mainMD/'
os.mkdir(nc) #データ出力フォルダ作成
os.chdir(nc)
shutil.copy( models+SPC , nc+'/' )
shutil.copy( models+OPLS3P , nc+'/' )
if(nma == 0):
scflib.make_aqmd(nmb,density,temp,nma,pressure,OPLS3P,SPC)
scflib.make_msconf(nmb,nma)
else:
scflib.make_aqmd(nma,density,temp,nmb,pressure,SPC,OPLS3P)
scflib.make_msconf(nma,nmb)
for MDfile in glob.glob(models+pn[3]+'/*.f'):
shutil.copy( MDfile , nc+'/' )
#コンパイル
if os.uname()[1] == "scf020":
scflib.mdifort(models,nc,pn[3],file)
else:
option = "main "+models+" "+nc+" "+pn[3]+" "+file
os.system("sshpass -p hora ssh hora@10.34.83.20 work/scflib.py "+option)
#並列処理
#--------------------------------------
if count%12 == 1:
a+=[count]
if count%12 == 2:
b+=[count]
if count%12 == 3:
c+=[count]
if count%12 == 4:
d+=[count]
if count%12 == 5:
e+=[count]
if count%12 == 6:
f+=[count]
if count%12 == 7:
g+=[count]
if count%12 == 8:
h+=[count]
if count%12 == 9:
i+=[count]
if count%12 == 10:
j+=[count]
if count%12 == 11:
k+=[count]
if count%12 == 0:
l+=[count]
m=[a,b,c,d,e,f,g,h,i,j,k,l]
print m
os.chdir( na )
for datas in m:
job = multiprocessing.Process(target=workpara, args=(datas, ))
jobs.append(job)
job.start()
[job.join() for job in jobs]
#--------------------------------------
# os.system("./calc-para.py")
print('Finish!!')
elapsed_time = time.time() - start
print("time:"+'%8.2f'%elapsed_time+'s') #計算時間
os.system('./finishmail.py mainMD.py '+models)
}}
#highlighter(python){{
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import glob
import shutil
import numpy as np
import time
#--------------------------------------------------------------------------------
def calcifort(nc,models):
print(models)
if ("ani" in models) == True:
nd="gfortran -O3 -o rdf "+models+"/*.f"
else:
nd="ifort -fast -diag-disable 8291 -o rdf "+models+"/*.f"
os.chdir( nc )
os.system( nd +" 2> log" )
os.system( nd +" 2> log" )
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
def kbiifort(nc,models):
print(models)
nd="ifort -fast -diag-disable 8291 -o kbi "+models+"/*.f"
#nd="gfortran -O3 -o rdf "+models+"/*.f"
os.chdir( nc )
os.system( nd +" 2> log" )
os.system( nd +" 2> log" )
#--------------------------------------------------------------------------------
def mdifort(models,nc,pn,file):
os.chdir(nc)
os.system("gfortran -o ip "+models+"ip/*.f")
os.system("gfortran -o iv "+models+"iv/*.f")
for MDfile in glob.glob(models+"fix-flex-"+pn+'/*.f'):
shutil.copy( MDfile , nc+'/' )
os.system("ifort -fast -o "+file+" -diag-disable 8291 "+nc+"/*.f")
#os.system("gfortran -O3 -o "+file+" "+nc+"/*.f")
#--------------------------------------------------------------------------------
def sshopen():
print(" ----------------------------------------------------------")
print(" SSH�ڑ�������PC��I����Ă�������. ")
print(" ----------------------------------------------------------")
print(" 2. scf022(hora) ")
print(" 3. scf023(hora) ")
print(" 4. scf024(hora) ")
print(" 5. scf025(hora) ")
print(" 8. scf028(hora) ")
print(" 0. scf020(hora) ")
print(" etc. exit ")
print(" -------------------------------------------------------- ")
print(" �� �����ȊO�̓G���[��Ԃ��܂��D ")
print(" -------------------------------------------------------- ")
input_data = int( raw_input(">>>"))
keys = " -o StrictHostKeyChecking=no"
if input_data == 0 :
os.system("sshpass -p hora ssh hora@10.34.83.20"+keys)
elif input_data == 2 :
os.system("sshpass -p hora ssh hora@10.34.83.22"+keys)
elif input_data == 3 :
os.system("sshpass -p hora ssh hora@10.34.83.23"+keys)
elif input_data == 4 :
os.system("sshpass -p hora ssh hora@10.34.83.24"+keys)
elif input_data == 5 :
os.system("sshpass -p hora ssh hora@10.34.83.25"+keys)
elif input_data == 8 :
os.system("sshpass -p hora ssh hora@10.34.83.28"+keys)
else:
print "�ڑ��I���I�����܂��D"
#--------------------------------------------------------------------------------
def eraser():
pn=[]
for pathn in open('PATH').readlines():
pnx=pathn[:-1].split('\t')
pn.append(str(pnx[0]))
na=os.getcwd()+"/"
workdir='src/'+pn[1]
readname=pn[2]
os.chdir( na )
list,name,compo,tempre,press =[],[],[],[],[]
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
file=na.replace('work/','')+str(item[9])+'/'+str(item[0])+'/'+readname
os.remove(file)
print( str(item[0]) +'/' + str(readname))
print('The files indicated in LIST&PATH were removed!!')
#--------------------------------------------------------------------------------
def boxl():
na=os.getcwd()+"/"
os.chdir( na )
list,name,compo,tempre,press,AVE,SD,id=[],[],[],[],[],[],[],[]
count=0
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
name.append(str(item[0]))
compo.append(float(item[6]))
tempre.append(float(item[1]))
press.append(float(item[3]))
count=count+1
id.append(str(item[9].replace('\r','')))
# print count
print('BOXL calculating!')
for y in xrange (0,count):
files=na.replace('work/','')+str(id[y])+'/'
file=str(files)+str(name[y])+'/'+'qfin.xyz'
data = open(file).readline()
datas = data[:-1].split(' ')
AVE.append(np.float32(datas[1]))
data=[]
f=open('BOXL-'+str(name[0])+'-'+str(name[count-1])+'.dat', 'w')
f.write('BOXL \n')
f.write('%6s'%'name\t' )
f.write('%5s'%'�g��\t')
f.write('%10s'%'���x[C]\t')
f.write('%10s'%'����[MPa]\t')
f.write('%10s'%'BOXL[A]\n')
for x in xrange (0,count):
f.write(str('%6s'%name[x])+'\t')
f.write(str('%5.3f'%compo[x])+'\t')
f.write(str('%10.3f'%tempre[x])+'\t')
f.write(str('%10.3f'%press[x])+'\t')
f.write(str('%10.5f'%AVE[x])+'\n')
f.close()
print('Finish!!')
#--------------------------------------------------------------------------------
def sumkbi():
na=os.getcwd()
os.chdir( na )
list,name,compo,tempre,press =[],[],[],[],[]
aa,ab,ba,bb = [],[],[],[]
count=0
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
name.append(str(item[0]))
compo.append(float(item[6]))
tempre.append(float(item[1]))
press.append(float(item[3]))
count=count+1
files=na.replace('work','')+str(item[9].replace('\r',''))+'/'
file=files+str(name[count-1])+'/'+'KBI.dat'
data = np.loadtxt(file)
aa.append(data[0])
ab.append(data[1])
ba.append(data[2])
bb.append(data[3])
os.chdir( na +"/dat/")
f=open('KBI_Bulk-'+str(name[0])+'-'+str(name[count-1])+'.dat', 'w')
f.write('KBI_Bulk.\n')
f.write('%6s'%'name\t' )
f.write('%5s'%'�g��\t')
f.write('%10s'%'���x[C]\t')
f.write('%10s'%'����[MPa]\t')
f.write('%10s'%' Gww \t')
f.write('%10s'%' Gwm \t')
f.write('%10s'%' Gmw \t')
f.write('%10s'%' Gmm \n')
for x in xrange (0,count):
f.write(str('%6s'%name[x])+'\t')
f.write(str('%5.3f'%compo[x])+'\t')
f.write(str('%10.3f'%tempre[x])+'\t')
f.write(str('%10.3f'%press[x])+'\t')
if compo[x] == 1.0 :
f.write(str('%10.5f'%bb[x])+'\t')
f.write(str('%10.5f'%ab[x])+'\t')
f.write(str('%10.5f'%ba[x])+'\t')
f.write(str('%10.5f'%aa[x])+'\n')
else:
f.write(str('%10.5f'%aa[x])+'\t')
f.write(str('%10.5f'%ab[x])+'\t')
f.write(str('%10.5f'%ba[x])+'\t')
f.write(str('%10.5f'%bb[x])+'\n')
f.close()
print('Finish!!')
#--------------------------------------------------------------------------------
if __name__ == '__main__':
param = sys.argv
if len(param) == 1:
os.system("clear")
print("\n �O���ڑ��v���O������N�����܂��D")
sshopen()
elif ("boxl" in param[1] ) == True:
boxl()
elif ("eraser" in param[1] ) == True:
eraser()
elif ("sumkbi" in param[1] ) == True:
sumkbi()
else:
calc = param[1]
models = param[2]
nc = param[3]
pn = param[4]
file = param[5]
if calc == "main":
mdifort(models,nc,pn,file)
elif calc == "kbi":
kbiifort(nc,models)
else:
calcifort(nc,models)
#AQMD.JOB MSCONF�̍쐬
#----------------------------------------------------------------------------------------------
def test_make_aqmd(a0,a1,a2,a3,a4,a5,a6):
AQMD=open("AQMD.JOB",'w')
AQMD.write (' ion-water: NVT at T='+str(a2)+'C at '+str(a4)+'M\n')
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" NW DEN[g/cc] TEMP[C] NMB MDL_FILE_A\n")
AQMD.write ('%11d'%a0+'%12.5f'%a1+'%12.4f'%a2+'%12d'%a3+'%12s'%a5+'\n')
AQMD.write (" DTL[fs] NF_INTRA MDL_FILE_B\n")
AQMD.write ('%11.3f'%1.000+'%12d'%5+'%12s'%a6+'\n')
AQMD.write (" OPTRC RLIST[A] RCCM[A] RCSS[A]\n")
AQMD.write (" 3 0.997 0.995 0.800\n")
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" No_MODE NS_Backup NF_ACM[50] NF_TCOR NF_GR\n")
AQMD.write (" 5 50 50 50 50\n")
AQMD.write (" NSTEP_CTRL RUN_/CT_/CP_MODE(OPT) CPR_1 CPR_2 CPR_3\n")
AQMD.write (" 0 0 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 1 1 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 60000 2 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 100000 3 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 150000 4 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write (" NRUN OPT(0-3)\n")
AQMD.write (" 1 0\n")
AQMD.write (" T[C] P[Mpa] DTL[fs] OPT1 OPT2 OPT3\n")
AQMD.write ('%11.4f'%a2+'%12.4f'%a4+'%12s'%'1.000d0'+'%12s'%'0.70000d0'+'%12s'%'1.10000d0'+'%12s'%'1.10000d0'+'\n')
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.close()
return
def make_aqmd(a0,a1,a2,a3,a4,a5,a6):
AQMD=open("AQMD.JOB",'w')
AQMD.write (' ion-water: NVT at T='+str(a2)+'C at '+str(a4)+'M\n')
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" NW DEN[g/cc] TEMP[C] NMB MDL_FILE_A\n")
AQMD.write ('%11d'%a0+'%12.5f'%a1+'%12.4f'%a2+'%12d'%a3+'%12s'%a5+'\n')
AQMD.write (" DTL[fs] NF_INTRA MDL_FILE_B\n")
AQMD.write ('%11.3f'%1.000+'%12d'%5+'%12s'%a6+'\n')
AQMD.write (" OPTRC RLIST[A] RCCM[A] RCSS[A]\n")
AQMD.write (" 3 0.997 0.995 0.800\n")
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" No_MODE NS_Backup NF_ACM[50] NF_TCOR NF_GR\n")
AQMD.write (" 5 5 50 50 50\n")
AQMD.write (" NSTEP_CTRL RUN_/CT_/CP_MODE(OPT) CPR_1 CPR_2 CPR_3\n")
AQMD.write (" 0 0 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 1 1 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 60000 2 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 100000 3 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 600000 4 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write (" NRUN OPT(0-3)\n")
AQMD.write (" 1 0\n")
AQMD.write (" T[C] P[Mpa] DTL[fs] OPT1 OPT2 OPT3\n")
AQMD.write ('%11.4f'%a2+'%12.4f'%a4+'%12s'%'1.000d0'+'%12s'%'0.70000d0'+'%12s'%'1.10000d0'+'%12s'%'1.10000d0'+'\n')
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.close()
return
def make_msconf(b0,b1):
MSC=open("MSCONF",'w')
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write ("C SIZE PARAMETER for SIMULATION ( Ver.:087c)\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MSSIZE\n")
MSC.write (" integer,PARAMETER :: NMOLCA = "+str(b0)+"\n")
MSC.write (" integer,PARAMETER :: NSITEA = 3\n")
MSC.write (" integer,PARAMETER :: MAXPAIR= NMOLCA*10000\n")
MSC.write (" integer,PARAMETER :: NMOLCB = "+str(b1)+"\n")
MSC.write (" integer,PARAMETER :: NSITEB = 3\n")
MSC.write (" integer,PARAMETER :: MAXNT = 501\n")
MSC.write (" integer,PARAMETER :: MNTOR = 80000\n")
MSC.write (" integer,PARAMETER :: MAXRUN = 2\n")
MSC.write (" integer,PARAMETER :: MAXMODE= 6\n")
MSC.write (" integer,PARAMETER :: MPROP = 10\n")
MSC.write (" integer,PARAMETER :: MAXACM = 200\n")
MSC.write (" integer,PARAMETER :: MDATA = 50\n")
MSC.write (" integer,PARAMETER :: DEBUNIT=6\n")
MSC.write (" END MODULE MSSIZE\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEA,NMOLCA) :: rxa,rya,rza,\n")
MSC.write (" & vrxa,vrya,vrza, vxa,vya,vza,\n")
MSC.write (" & fxai,fyai,fzai, frxa,frya,frza, fxa,fya,fza \n")
MSC.write (" real*8,DIMENSION(NMOLCA) :: rxam,ryam,rzam,dpmx,dpmy,dpmz,\n")
MSC.write (" & vxam,vyam,vzam,fxam,fyam,fzam,dxam,dyam,dzam,APOINT\n")
MSC.write (" real*8,DIMENSION(NSITEA,NSITEA) :: CA1,CA2,CA3\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: SAQ,SAMASS\n")
MSC.write (" real*8,DIMENSION(MAXPAIR) :: ALIST\n")
MSC.write (" real*8 :: TAMASS,XMA\n")
MSC.write (" integer :: NMA\n")
MSC.write (" END MODULE MA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MA_INTRA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: Akr,AKro,AA,AB\n")
MSC.write (" real*8 :: re12,re13,re23,ANG, AKo,AKrr,ADD\n")
MSC.write (" END MODULE MA_INTRA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MB\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEB,NMOLCB) :: rxb,ryb,rzb,\n")
MSC.write (" & vrxb,vryb,vrzb, vxb,vyb,vzb,\n")
MSC.write (" & fxbi,fybi,fzbi, frxb,fryb,frzb, fxb,fyb,fzb \n")
MSC.write (" real*8,DIMENSION(NMOLCB) :: rxbm,rybm,rzbm,dpmxb,dpmyb,dpmzb,\n")
MSC.write (" & vxbm,vybm,vzbm,fxbm,fybm,fzbm,dxbm,dybm,dzbm,BPOINT\n")
MSC.write (" real*8,DIMENSION(NSITEB,NSITEB) :: CB1,CB2,CB3\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: SBQ,SBMASS\n")
MSC.write (" real*8,DIMENSION(NMOLCB*NMOLCB) :: BLIST\n")
MSC.write (" real*8 :: TBMASS,XMB\n")
MSC.write (" integer :: NMB\n")
MSC.write ("C - - - - - - - - - - - - - - - - - - - - for B and A\n")
MSC.write (" real*8,DIMENSION(NMOLCB+1) :: ABPOINT\n")
MSC.write (" real*8,DIMENSION(NMOLCA*NMOLCB) :: ABLIST\n")
MSC.write (" real*8,DIMENSION(NSITEA,NSITEB) :: SIGMAB,EPSIAB,CAB1,CAB2,CAB3\n")
MSC.write (" END MODULE MB\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MB_INTRA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: Bkr,BKro,BA,BB\n")
MSC.write (" real*8 :: Bre12,Bre13,Bre23,BANG, BKo,BKrr,BDD\n")
MSC.write (" END MODULE MB_INTRA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write ("C ----------------------------------------------------------\n")
MSC.write ("C MODCONF : configuration for simulation\n")
MSC.write ("C ----------------------------------------------------------\n")
MSC.write (" module PROP\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(MPROP) :: APROP,BPROP,CPROP,DPROP,EPROP\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module PROP_A\n")
MSC.write (" real*8 :: POTLJ, POTC, POTIN, PPLJ, PPC, PPIN\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module PROP_B\n")
MSC.write (" real*8 :: POTLJB, POTCB, POTINB, PPLJB, PPCB, PPINB\n")
MSC.write (" real*8 :: POTLJAB,POTCAB, PPLJAB,PPCAB\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module TC\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8 :: etacm,etar,epsi,Detar,Detacm,Depsi,\n")
MSC.write (" & Getar,Gepsi,Getacm\n")
MSC.write (" real*8 :: TAUT,TAUP,QTcm,QTr,QP, SCMint\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: va_avg, bath_ma\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: vb_avg, bath_mb\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module SIMconf\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8 :: DTL,DEN,TEMP,TSIM,PSIM,EKTOT,PPTOT,TTRANS\n")
MSC.write (" real*8 :: BOXL,BOXLIV\n")
MSC.write (" real*8 :: RLISTSQ,RCUTSQ,RCLJSQ,RCENV,RCC\n")
MSC.write (" real*8 :: RRLIST,RRCUT,RRCLJ\n")
MSC.write (" integer :: NSTEP,NSEQ,NFACM,NFSAVE,NFGR,NBACK\n")
MSC.write (" integer :: NCRUN,MODECR,MODECT,MODECP,MODECO\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module SIMopt\n")
MSC.write (" use MSSIZE\n")
MSC.write (" integer,DIMENSION(MAXMODE) :: MCR,MCT,MCP,MCO,NSCR\n")
MSC.write (" real*8 ,DIMENSION(MAXMODE) :: CPR1,CPR2,CPR3\n")
MSC.write (" real*8 ,DIMENSION(MAXRUN) :: RSET1,RSET2,RSET3\n")
MSC.write (" real*8 ,DIMENSION(MAXRUN,NSITEA) :: OPT1,OPT2,OPT3\n")
MSC.write (" integer :: OPT\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module CONSTs\n")
MSC.write (" real*8,PARAMETER :: LA = 6.022136736d+23 \n")
MSC.write (" real*8,PARAMETER :: EP = 1.6021773349d-19 \n")
MSC.write (" real*8,PARAMETER :: Pi = 3.14159265358979d0\n")
MSC.write (" real*8,PARAMETER :: CC = 2.99792458d+8\n")
MSC.write (" real*8,PARAMETER :: KB = 1.38065812d-23 \n")
MSC.write (" real*8,PARAMETER :: AM = 1.660540210D-27\n")
MSC.write (" real*8,PARAMETER :: FR = 9.648670d+4\n")
MSC.write (" real*8,PARAMETER :: A4M = 1.0d+10\n")
MSC.write (" real*8,PARAMETER :: Q4J = 1.0d-7\n")
MSC.write (" real*8,PARAMETER :: Q4KJ= 1.0d-4\n")
MSC.write (" real*8,PARAMETER :: J4Q = 1.0d+7\n")
MSC.write (" real*8,PARAMETER :: KJ4Q= 1.0d+4\n")
MSC.write (" real*8,PARAMETER :: GC = LA*KB\n")
MSC.write (" real*8,PARAMETER :: UO = 4.0d0*Pi*1.0d-7\n")
MSC.write (" real*8,PARAMETER :: EO = 1.0d0/(CC*CC*UO)\n")
MSC.write (" real*8,PARAMETER :: EC = Q4J*(A4M*LA*EP*EP)/(4.0d0*Pi*EO)\n")
MSC.write (" real*8,PARAMETER :: KC = FR*FR/(EO*GC)\n")
MSC.write (" end module CONSTs\n")
MSC.write ("C ----------------------------------------------------------------\n")
MSC.write (" module ModRand\n")
MSC.write (" integer :: MTSC,SCM\n")
MSC.write (" end module\n")
MSC.close()
return
#----------------------------------------------------------------------------------------------
}}
終了行:
[[computer/programing]]
#contents
*環境構築 [#h8f18bb4]
python -V
*エポック [#i79884ec]
#highlighter(python){{
# coding=utf-8
import time
from datetime import datetime
def datetime_to_epoch(d):
return int(time.mktime(d.timetuple()))
def epoch_to_datetime(epoch):
return datetime(*time.localtime(epoch)[:6])
now = datetime.now()
epoch = datetime_to_epoch(now)
epoch_to_datetime(epoch)
# => 2012-10-10 21:12:17
}}
#highlighter(python){{
#! /usr/bin/env python
# -*- coding: utf-8 -*-
#コンパイルスクリプト
# var0.1 09/11/06 by ono
# var0.1.1 09/12/11 by ono
# var0.1.2 10/01/14 by ono
# var0.2 11/04/26 by ono
# translation into python 15/07/07 by hora
#LISTの作り方
#title tem tem pre den tot.mol com nma nmb 識別番号
#wm0054 350 623.15 25 0.62528 2048 0.00 2048 0 scf102
#wm0055 350 623.15 25 0.59254 2048 0.06 1923 125 scf102
#wm0056 350 623.15 25 0.56426 2048 0.10 1843 205 scf103
#wm0057 350 623.15 25 0.48128 2048 0.19 1658 390 scf103
#wm0058 350 623.15 25 0.38857 2048 0.29 1462 586 scf105
import shutil
import os
import glob
import time #getting epoch
import sys
import multiprocessing
import numpy as np
import scflib
start = time.time()
#----------------------------------------------------------------------------------------------
def workpara(datas): #def->definision of function
for x in datas:
files=na.replace('work','')+str(id[x-1].replace('\r',''))+'/'
nc=str(files.replace('\r',''))+str(names[x-1])
os.chdir( nc )
tempfile = os.listdir(nc)
if ('win' in sys.platform):
os.system('ip')
os.system('iv')
os.system(names[x-1])
else:
os.system('./ip')
os.system('./iv')
os.system('./'+names[x-1])
if __name__ == '__main__':
pn=[]
for pathn in open('PATH').readlines(): #作業フォルダのパス取得
pnx=pathn[:-1].split('\t')
pn.append(str(pnx[0]))
na=os.getcwd()
os.chdir( na )
#------------------------------------------------------------------
count=0
a,b,c,d,e,f,g,h,i,j,k,l,m,jobs=[],[],[],[],[],[],[],[],[],[],[],[],[],[]
names,id=[],[]
SPC='SPC.mTR'
OPLS3P='OPLS3P.mTR'
for line in open('LIST').readlines(): #LIST読み込み
condition=line[:-1].split('\t')
names.append(str(condition[0]))
id.append(str(condition[9]))
file = str(condition[0])
nma = float(condition[7])
density = float(condition[4])
temp = float(condition[1])
nmb = float(condition[8])
pressure = float(condition[3])
comp = float(condition[6])
count=count+1
print ("%10s"%file)
print ("%10.4f"%temp)
print ("%10.4f"%pressure)
print ("%10.5f"%density)
print ("%10.2f"%comp)
print ("%10d"%nma)
print ("%10d\n"%nmb)
files = na.replace('work','') + str(condition[9].replace('\r',''))+'/'
nc=str(files)+file
models=na+'/src/mainMD/'
os.mkdir(nc) #データ出力フォルダ作成
os.chdir(nc)
shutil.copy( models+SPC , nc+'/' )
shutil.copy( models+OPLS3P , nc+'/' )
if(nma == 0):
scflib.make_aqmd(nmb,density,temp,nma,pressure,OPLS3P,SPC)
scflib.make_msconf(nmb,nma)
else:
scflib.make_aqmd(nma,density,temp,nmb,pressure,SPC,OPLS3P)
scflib.make_msconf(nma,nmb)
for MDfile in glob.glob(models+pn[3]+'/*.f'):
shutil.copy( MDfile , nc+'/' )
#コンパイル
if os.uname()[1] == "scf020":
scflib.mdifort(models,nc,pn[3],file)
else:
option = "main "+models+" "+nc+" "+pn[3]+" "+file
os.system("sshpass -p hora ssh hora@10.34.83.20 work/scflib.py "+option)
#並列処理
#--------------------------------------
if count%12 == 1:
a+=[count]
if count%12 == 2:
b+=[count]
if count%12 == 3:
c+=[count]
if count%12 == 4:
d+=[count]
if count%12 == 5:
e+=[count]
if count%12 == 6:
f+=[count]
if count%12 == 7:
g+=[count]
if count%12 == 8:
h+=[count]
if count%12 == 9:
i+=[count]
if count%12 == 10:
j+=[count]
if count%12 == 11:
k+=[count]
if count%12 == 0:
l+=[count]
m=[a,b,c,d,e,f,g,h,i,j,k,l]
print m
os.chdir( na )
for datas in m:
job = multiprocessing.Process(target=workpara, args=(datas, ))
jobs.append(job)
job.start()
[job.join() for job in jobs]
#--------------------------------------
# os.system("./calc-para.py")
print('Finish!!')
elapsed_time = time.time() - start
print("time:"+'%8.2f'%elapsed_time+'s') #計算時間
os.system('./finishmail.py mainMD.py '+models)
}}
#highlighter(python){{
#! /usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
import glob
import shutil
import numpy as np
import time
#--------------------------------------------------------------------------------
def calcifort(nc,models):
print(models)
if ("ani" in models) == True:
nd="gfortran -O3 -o rdf "+models+"/*.f"
else:
nd="ifort -fast -diag-disable 8291 -o rdf "+models+"/*.f"
os.chdir( nc )
os.system( nd +" 2> log" )
os.system( nd +" 2> log" )
#--------------------------------------------------------------------------------
#--------------------------------------------------------------------------------
def kbiifort(nc,models):
print(models)
nd="ifort -fast -diag-disable 8291 -o kbi "+models+"/*.f"
#nd="gfortran -O3 -o rdf "+models+"/*.f"
os.chdir( nc )
os.system( nd +" 2> log" )
os.system( nd +" 2> log" )
#--------------------------------------------------------------------------------
def mdifort(models,nc,pn,file):
os.chdir(nc)
os.system("gfortran -o ip "+models+"ip/*.f")
os.system("gfortran -o iv "+models+"iv/*.f")
for MDfile in glob.glob(models+"fix-flex-"+pn+'/*.f'):
shutil.copy( MDfile , nc+'/' )
os.system("ifort -fast -o "+file+" -diag-disable 8291 "+nc+"/*.f")
#os.system("gfortran -O3 -o "+file+" "+nc+"/*.f")
#--------------------------------------------------------------------------------
def sshopen():
print(" ----------------------------------------------------------")
print(" SSH�ڑ�������PC��I����Ă�������. ")
print(" ----------------------------------------------------------")
print(" 2. scf022(hora) ")
print(" 3. scf023(hora) ")
print(" 4. scf024(hora) ")
print(" 5. scf025(hora) ")
print(" 8. scf028(hora) ")
print(" 0. scf020(hora) ")
print(" etc. exit ")
print(" -------------------------------------------------------- ")
print(" �� �����ȊO�̓G���[��Ԃ��܂��D ")
print(" -------------------------------------------------------- ")
input_data = int( raw_input(">>>"))
keys = " -o StrictHostKeyChecking=no"
if input_data == 0 :
os.system("sshpass -p hora ssh hora@10.34.83.20"+keys)
elif input_data == 2 :
os.system("sshpass -p hora ssh hora@10.34.83.22"+keys)
elif input_data == 3 :
os.system("sshpass -p hora ssh hora@10.34.83.23"+keys)
elif input_data == 4 :
os.system("sshpass -p hora ssh hora@10.34.83.24"+keys)
elif input_data == 5 :
os.system("sshpass -p hora ssh hora@10.34.83.25"+keys)
elif input_data == 8 :
os.system("sshpass -p hora ssh hora@10.34.83.28"+keys)
else:
print "�ڑ��I���I�����܂��D"
#--------------------------------------------------------------------------------
def eraser():
pn=[]
for pathn in open('PATH').readlines():
pnx=pathn[:-1].split('\t')
pn.append(str(pnx[0]))
na=os.getcwd()+"/"
workdir='src/'+pn[1]
readname=pn[2]
os.chdir( na )
list,name,compo,tempre,press =[],[],[],[],[]
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
file=na.replace('work/','')+str(item[9])+'/'+str(item[0])+'/'+readname
os.remove(file)
print( str(item[0]) +'/' + str(readname))
print('The files indicated in LIST&PATH were removed!!')
#--------------------------------------------------------------------------------
def boxl():
na=os.getcwd()+"/"
os.chdir( na )
list,name,compo,tempre,press,AVE,SD,id=[],[],[],[],[],[],[],[]
count=0
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
name.append(str(item[0]))
compo.append(float(item[6]))
tempre.append(float(item[1]))
press.append(float(item[3]))
count=count+1
id.append(str(item[9].replace('\r','')))
# print count
print('BOXL calculating!')
for y in xrange (0,count):
files=na.replace('work/','')+str(id[y])+'/'
file=str(files)+str(name[y])+'/'+'qfin.xyz'
data = open(file).readline()
datas = data[:-1].split(' ')
AVE.append(np.float32(datas[1]))
data=[]
f=open('BOXL-'+str(name[0])+'-'+str(name[count-1])+'.dat', 'w')
f.write('BOXL \n')
f.write('%6s'%'name\t' )
f.write('%5s'%'�g��\t')
f.write('%10s'%'���x[C]\t')
f.write('%10s'%'����[MPa]\t')
f.write('%10s'%'BOXL[A]\n')
for x in xrange (0,count):
f.write(str('%6s'%name[x])+'\t')
f.write(str('%5.3f'%compo[x])+'\t')
f.write(str('%10.3f'%tempre[x])+'\t')
f.write(str('%10.3f'%press[x])+'\t')
f.write(str('%10.5f'%AVE[x])+'\n')
f.close()
print('Finish!!')
#--------------------------------------------------------------------------------
def sumkbi():
na=os.getcwd()
os.chdir( na )
list,name,compo,tempre,press =[],[],[],[],[]
aa,ab,ba,bb = [],[],[],[]
count=0
for lines in open('LIST').readlines():
item = lines[:-1].split('\t')
name.append(str(item[0]))
compo.append(float(item[6]))
tempre.append(float(item[1]))
press.append(float(item[3]))
count=count+1
files=na.replace('work','')+str(item[9].replace('\r',''))+'/'
file=files+str(name[count-1])+'/'+'KBI.dat'
data = np.loadtxt(file)
aa.append(data[0])
ab.append(data[1])
ba.append(data[2])
bb.append(data[3])
os.chdir( na +"/dat/")
f=open('KBI_Bulk-'+str(name[0])+'-'+str(name[count-1])+'.dat', 'w')
f.write('KBI_Bulk.\n')
f.write('%6s'%'name\t' )
f.write('%5s'%'�g��\t')
f.write('%10s'%'���x[C]\t')
f.write('%10s'%'����[MPa]\t')
f.write('%10s'%' Gww \t')
f.write('%10s'%' Gwm \t')
f.write('%10s'%' Gmw \t')
f.write('%10s'%' Gmm \n')
for x in xrange (0,count):
f.write(str('%6s'%name[x])+'\t')
f.write(str('%5.3f'%compo[x])+'\t')
f.write(str('%10.3f'%tempre[x])+'\t')
f.write(str('%10.3f'%press[x])+'\t')
if compo[x] == 1.0 :
f.write(str('%10.5f'%bb[x])+'\t')
f.write(str('%10.5f'%ab[x])+'\t')
f.write(str('%10.5f'%ba[x])+'\t')
f.write(str('%10.5f'%aa[x])+'\n')
else:
f.write(str('%10.5f'%aa[x])+'\t')
f.write(str('%10.5f'%ab[x])+'\t')
f.write(str('%10.5f'%ba[x])+'\t')
f.write(str('%10.5f'%bb[x])+'\n')
f.close()
print('Finish!!')
#--------------------------------------------------------------------------------
if __name__ == '__main__':
param = sys.argv
if len(param) == 1:
os.system("clear")
print("\n �O���ڑ��v���O������N�����܂��D")
sshopen()
elif ("boxl" in param[1] ) == True:
boxl()
elif ("eraser" in param[1] ) == True:
eraser()
elif ("sumkbi" in param[1] ) == True:
sumkbi()
else:
calc = param[1]
models = param[2]
nc = param[3]
pn = param[4]
file = param[5]
if calc == "main":
mdifort(models,nc,pn,file)
elif calc == "kbi":
kbiifort(nc,models)
else:
calcifort(nc,models)
#AQMD.JOB MSCONF�̍쐬
#----------------------------------------------------------------------------------------------
def test_make_aqmd(a0,a1,a2,a3,a4,a5,a6):
AQMD=open("AQMD.JOB",'w')
AQMD.write (' ion-water: NVT at T='+str(a2)+'C at '+str(a4)+'M\n')
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" NW DEN[g/cc] TEMP[C] NMB MDL_FILE_A\n")
AQMD.write ('%11d'%a0+'%12.5f'%a1+'%12.4f'%a2+'%12d'%a3+'%12s'%a5+'\n')
AQMD.write (" DTL[fs] NF_INTRA MDL_FILE_B\n")
AQMD.write ('%11.3f'%1.000+'%12d'%5+'%12s'%a6+'\n')
AQMD.write (" OPTRC RLIST[A] RCCM[A] RCSS[A]\n")
AQMD.write (" 3 0.997 0.995 0.800\n")
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" No_MODE NS_Backup NF_ACM[50] NF_TCOR NF_GR\n")
AQMD.write (" 5 50 50 50 50\n")
AQMD.write (" NSTEP_CTRL RUN_/CT_/CP_MODE(OPT) CPR_1 CPR_2 CPR_3\n")
AQMD.write (" 0 0 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 1 1 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 60000 2 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 100000 3 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 150000 4 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write (" NRUN OPT(0-3)\n")
AQMD.write (" 1 0\n")
AQMD.write (" T[C] P[Mpa] DTL[fs] OPT1 OPT2 OPT3\n")
AQMD.write ('%11.4f'%a2+'%12.4f'%a4+'%12s'%'1.000d0'+'%12s'%'0.70000d0'+'%12s'%'1.10000d0'+'%12s'%'1.10000d0'+'\n')
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.close()
return
def make_aqmd(a0,a1,a2,a3,a4,a5,a6):
AQMD=open("AQMD.JOB",'w')
AQMD.write (' ion-water: NVT at T='+str(a2)+'C at '+str(a4)+'M\n')
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" NW DEN[g/cc] TEMP[C] NMB MDL_FILE_A\n")
AQMD.write ('%11d'%a0+'%12.5f'%a1+'%12.4f'%a2+'%12d'%a3+'%12s'%a5+'\n')
AQMD.write (" DTL[fs] NF_INTRA MDL_FILE_B\n")
AQMD.write ('%11.3f'%1.000+'%12d'%5+'%12s'%a6+'\n')
AQMD.write (" OPTRC RLIST[A] RCCM[A] RCSS[A]\n")
AQMD.write (" 3 0.997 0.995 0.800\n")
AQMD.write ("-----------*-----------*-----------*-----------*-----------*-----------*\n")
AQMD.write (" No_MODE NS_Backup NF_ACM[50] NF_TCOR NF_GR\n")
AQMD.write (" 5 5 50 50 50\n")
AQMD.write (" NSTEP_CTRL RUN_/CT_/CP_MODE(OPT) CPR_1 CPR_2 CPR_3\n")
AQMD.write (" 0 0 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 1 1 1 0 0 0.000d0 0.000d0 1.000d0\n")
AQMD.write (" 60000 2 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 100000 3 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write (" 600000 4 3 0 0 0.317d3 0.237d3 0.418d3\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write (" NRUN OPT(0-3)\n")
AQMD.write (" 1 0\n")
AQMD.write (" T[C] P[Mpa] DTL[fs] OPT1 OPT2 OPT3\n")
AQMD.write ('%11.4f'%a2+'%12.4f'%a4+'%12s'%'1.000d0'+'%12s'%'0.70000d0'+'%12s'%'1.10000d0'+'%12s'%'1.10000d0'+'\n')
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.write ("-----------*-----*-----*-----*-----*-----------*-----------*-----------*\n")
AQMD.close()
return
def make_msconf(b0,b1):
MSC=open("MSCONF",'w')
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write ("C SIZE PARAMETER for SIMULATION ( Ver.:087c)\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MSSIZE\n")
MSC.write (" integer,PARAMETER :: NMOLCA = "+str(b0)+"\n")
MSC.write (" integer,PARAMETER :: NSITEA = 3\n")
MSC.write (" integer,PARAMETER :: MAXPAIR= NMOLCA*10000\n")
MSC.write (" integer,PARAMETER :: NMOLCB = "+str(b1)+"\n")
MSC.write (" integer,PARAMETER :: NSITEB = 3\n")
MSC.write (" integer,PARAMETER :: MAXNT = 501\n")
MSC.write (" integer,PARAMETER :: MNTOR = 80000\n")
MSC.write (" integer,PARAMETER :: MAXRUN = 2\n")
MSC.write (" integer,PARAMETER :: MAXMODE= 6\n")
MSC.write (" integer,PARAMETER :: MPROP = 10\n")
MSC.write (" integer,PARAMETER :: MAXACM = 200\n")
MSC.write (" integer,PARAMETER :: MDATA = 50\n")
MSC.write (" integer,PARAMETER :: DEBUNIT=6\n")
MSC.write (" END MODULE MSSIZE\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEA,NMOLCA) :: rxa,rya,rza,\n")
MSC.write (" & vrxa,vrya,vrza, vxa,vya,vza,\n")
MSC.write (" & fxai,fyai,fzai, frxa,frya,frza, fxa,fya,fza \n")
MSC.write (" real*8,DIMENSION(NMOLCA) :: rxam,ryam,rzam,dpmx,dpmy,dpmz,\n")
MSC.write (" & vxam,vyam,vzam,fxam,fyam,fzam,dxam,dyam,dzam,APOINT\n")
MSC.write (" real*8,DIMENSION(NSITEA,NSITEA) :: CA1,CA2,CA3\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: SAQ,SAMASS\n")
MSC.write (" real*8,DIMENSION(MAXPAIR) :: ALIST\n")
MSC.write (" real*8 :: TAMASS,XMA\n")
MSC.write (" integer :: NMA\n")
MSC.write (" END MODULE MA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MA_INTRA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: Akr,AKro,AA,AB\n")
MSC.write (" real*8 :: re12,re13,re23,ANG, AKo,AKrr,ADD\n")
MSC.write (" END MODULE MA_INTRA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MB\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEB,NMOLCB) :: rxb,ryb,rzb,\n")
MSC.write (" & vrxb,vryb,vrzb, vxb,vyb,vzb,\n")
MSC.write (" & fxbi,fybi,fzbi, frxb,fryb,frzb, fxb,fyb,fzb \n")
MSC.write (" real*8,DIMENSION(NMOLCB) :: rxbm,rybm,rzbm,dpmxb,dpmyb,dpmzb,\n")
MSC.write (" & vxbm,vybm,vzbm,fxbm,fybm,fzbm,dxbm,dybm,dzbm,BPOINT\n")
MSC.write (" real*8,DIMENSION(NSITEB,NSITEB) :: CB1,CB2,CB3\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: SBQ,SBMASS\n")
MSC.write (" real*8,DIMENSION(NMOLCB*NMOLCB) :: BLIST\n")
MSC.write (" real*8 :: TBMASS,XMB\n")
MSC.write (" integer :: NMB\n")
MSC.write ("C - - - - - - - - - - - - - - - - - - - - for B and A\n")
MSC.write (" real*8,DIMENSION(NMOLCB+1) :: ABPOINT\n")
MSC.write (" real*8,DIMENSION(NMOLCA*NMOLCB) :: ABLIST\n")
MSC.write (" real*8,DIMENSION(NSITEA,NSITEB) :: SIGMAB,EPSIAB,CAB1,CAB2,CAB3\n")
MSC.write (" END MODULE MB\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write (" MODULE MB_INTRA\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: Bkr,BKro,BA,BB\n")
MSC.write (" real*8 :: Bre12,Bre13,Bre23,BANG, BKo,BKrr,BDD\n")
MSC.write (" END MODULE MB_INTRA\n")
MSC.write ("C ------------------------------------------------------------------\n")
MSC.write ("C ----------------------------------------------------------\n")
MSC.write ("C MODCONF : configuration for simulation\n")
MSC.write ("C ----------------------------------------------------------\n")
MSC.write (" module PROP\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8,DIMENSION(MPROP) :: APROP,BPROP,CPROP,DPROP,EPROP\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module PROP_A\n")
MSC.write (" real*8 :: POTLJ, POTC, POTIN, PPLJ, PPC, PPIN\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module PROP_B\n")
MSC.write (" real*8 :: POTLJB, POTCB, POTINB, PPLJB, PPCB, PPINB\n")
MSC.write (" real*8 :: POTLJAB,POTCAB, PPLJAB,PPCAB\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module TC\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8 :: etacm,etar,epsi,Detar,Detacm,Depsi,\n")
MSC.write (" & Getar,Gepsi,Getacm\n")
MSC.write (" real*8 :: TAUT,TAUP,QTcm,QTr,QP, SCMint\n")
MSC.write (" real*8,DIMENSION(NSITEA) :: va_avg, bath_ma\n")
MSC.write (" real*8,DIMENSION(NSITEB) :: vb_avg, bath_mb\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module SIMconf\n")
MSC.write (" use MSSIZE\n")
MSC.write (" real*8 :: DTL,DEN,TEMP,TSIM,PSIM,EKTOT,PPTOT,TTRANS\n")
MSC.write (" real*8 :: BOXL,BOXLIV\n")
MSC.write (" real*8 :: RLISTSQ,RCUTSQ,RCLJSQ,RCENV,RCC\n")
MSC.write (" real*8 :: RRLIST,RRCUT,RRCLJ\n")
MSC.write (" integer :: NSTEP,NSEQ,NFACM,NFSAVE,NFGR,NBACK\n")
MSC.write (" integer :: NCRUN,MODECR,MODECT,MODECP,MODECO\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module SIMopt\n")
MSC.write (" use MSSIZE\n")
MSC.write (" integer,DIMENSION(MAXMODE) :: MCR,MCT,MCP,MCO,NSCR\n")
MSC.write (" real*8 ,DIMENSION(MAXMODE) :: CPR1,CPR2,CPR3\n")
MSC.write (" real*8 ,DIMENSION(MAXRUN) :: RSET1,RSET2,RSET3\n")
MSC.write (" real*8 ,DIMENSION(MAXRUN,NSITEA) :: OPT1,OPT2,OPT3\n")
MSC.write (" integer :: OPT\n")
MSC.write (" end module\n")
MSC.write ("C -----------------------------------------------------------\n")
MSC.write (" module CONSTs\n")
MSC.write (" real*8,PARAMETER :: LA = 6.022136736d+23 \n")
MSC.write (" real*8,PARAMETER :: EP = 1.6021773349d-19 \n")
MSC.write (" real*8,PARAMETER :: Pi = 3.14159265358979d0\n")
MSC.write (" real*8,PARAMETER :: CC = 2.99792458d+8\n")
MSC.write (" real*8,PARAMETER :: KB = 1.38065812d-23 \n")
MSC.write (" real*8,PARAMETER :: AM = 1.660540210D-27\n")
MSC.write (" real*8,PARAMETER :: FR = 9.648670d+4\n")
MSC.write (" real*8,PARAMETER :: A4M = 1.0d+10\n")
MSC.write (" real*8,PARAMETER :: Q4J = 1.0d-7\n")
MSC.write (" real*8,PARAMETER :: Q4KJ= 1.0d-4\n")
MSC.write (" real*8,PARAMETER :: J4Q = 1.0d+7\n")
MSC.write (" real*8,PARAMETER :: KJ4Q= 1.0d+4\n")
MSC.write (" real*8,PARAMETER :: GC = LA*KB\n")
MSC.write (" real*8,PARAMETER :: UO = 4.0d0*Pi*1.0d-7\n")
MSC.write (" real*8,PARAMETER :: EO = 1.0d0/(CC*CC*UO)\n")
MSC.write (" real*8,PARAMETER :: EC = Q4J*(A4M*LA*EP*EP)/(4.0d0*Pi*EO)\n")
MSC.write (" real*8,PARAMETER :: KC = FR*FR/(EO*GC)\n")
MSC.write (" end module CONSTs\n")
MSC.write ("C ----------------------------------------------------------------\n")
MSC.write (" module ModRand\n")
MSC.write (" integer :: MTSC,SCM\n")
MSC.write (" end module\n")
MSC.close()
return
#----------------------------------------------------------------------------------------------
}}
ページ名: