X-Git-Url: http://mmka.chem.univ.gda.pl/gitweb/?a=blobdiff_plain;f=source%2Funres%2Fsrc_Eshel%2Fopenunits.F;fp=source%2Funres%2Fsrc_Eshel%2Fopenunits.F;h=8259dacfe951edd598e961619b3ae99964027f81;hb=d101c97dea752458d76055fdbae49c26fff03c1f;hp=0000000000000000000000000000000000000000;hpb=325eda160c9ad2982501e091ca40606a29043712;p=unres.git diff --git a/source/unres/src_Eshel/openunits.F b/source/unres/src_Eshel/openunits.F new file mode 100644 index 0000000..8259dac --- /dev/null +++ b/source/unres/src_Eshel/openunits.F @@ -0,0 +1,367 @@ + subroutine openunits + implicit real*8 (a-h,o-z) + include 'DIMENSIONS' +#ifdef MPI + include 'mpif.h' + character*16 form,nodename + integer nodelen +#endif + include 'COMMON.SETUP' + include 'COMMON.IOUNITS' + include 'COMMON.MD' + include 'COMMON.CONTROL' + integer lenpre,lenpot,ilen,lentmp + external ilen + character*3 out1file_text,ucase + character*3 ll + external ucase +c print *,"Processor",myrank,"fg_rank",fg_rank," entered openunits" + call getenv_loc("PREFIX",prefix) + pref_orig = prefix + call getenv_loc("POT",pot) + call getenv_loc("DIRTMP",tmpdir) + call getenv_loc("CURDIR",curdir) + call getenv_loc("OUT1FILE",out1file_text) +c print *,"Processor",myrank,"fg_rank",fg_rank," did GETENV" + out1file_text=ucase(out1file_text) + if (out1file_text(1:1).eq."Y") then + out1file=.true. + else + out1file=fg_rank.gt.0 + endif + lenpre=ilen(prefix) + lenpot=ilen(pot) + lentmp=ilen(tmpdir) + if (lentmp.gt.0) then + write (*,'(80(1h!))') + write (*,'(a,19x,a,19x,a)') "!"," A T T E N T I O N ","!" + write (*,'(80(1h!))') + write (*,*)"All output files will be on node /tmp directory." +#ifdef MPI + call MPI_GET_PROCESSOR_NAME( nodename, nodelen, IERROR ) + if (me.eq.king) then + write (*,*) "The master node is ",nodename + else if (fg_rank.eq.0) then + write (*,*) "I am the CG slave node ",nodename + else + write (*,*) "I am the FG slave node ",nodename + endif +#endif + PREFIX = tmpdir(:lentmp)//'/'//prefix(:lenpre) + lenpre = lentmp+lenpre+1 + endif + entname=prefix(:lenpre)//'_'//pot(:lenpot)//'.entr' +C Get the names and open the input files +#if defined(WINIFL) || defined(WINPGI) + open(1,file=pref_orig(:ilen(pref_orig))// + & '.inp',status='old',readonly,shared) + open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown') +C open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown') +C Get parameter filenames and open the parameter files. + call getenv_loc('BONDPAR',bondname) + open (ibond,file=bondname,status='old',readonly,shared) + call getenv_loc('THETPAR',thetname) + open (ithep,file=thetname,status='old',readonly,shared) +#ifndef CRYST_THETA + call getenv_loc('THETPARPDB',thetname_pdb) + open (ithep_pdb,file=thetname_pdb,status='old',readonly,shared) +#endif + call getenv_loc('ROTPAR',rotname) + open (irotam,file=rotname,status='old',readonly,shared) +#ifndef CRYST_SC + call getenv_loc('ROTPARPDB',rotname_pdb) + open (irotam_pdb,file=rotname_pdb,status='old',readonly,shared) +#endif + call getenv_loc('TORPAR',torname) + open (itorp,file=torname,status='old',readonly,shared) + call getenv_loc('TORDPAR',tordname) + open (itordp,file=tordname,status='old',readonly,shared) + call getenv_loc('FOURIER',fouriername) + open (ifourier,file=fouriername,status='old',readonly,shared) + call getenv_loc('ELEPAR',elename) + open (ielep,file=elename,status='old',readonly,shared) + call getenv_loc('SIDEPAR',sidename) + open (isidep,file=sidename,status='old',readonly,shared) +#elif (defined CRAY) || (defined AIX) + open(1,file=pref_orig(:ilen(pref_orig))//'.inp',status='old', + & action='read') +c print *,"Processor",myrank," opened file 1" + open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown') +c print *,"Processor",myrank," opened file 9" +C open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown') +C Get parameter filenames and open the parameter files. + call getenv_loc('BONDPAR',bondname) + open (ibond,file=bondname,status='old',action='read') +c print *,"Processor",myrank," opened file IBOND" + call getenv_loc('THETPAR',thetname) + open (ithep,file=thetname,status='old',action='read') +c print *,"Processor",myrank," opened file ITHEP" +#ifndef CRYST_THETA + call getenv_loc('THETPARPDB',thetname_pdb) + open (ithep_pdb,file=thetname_pdb,status='old',action='read') +#endif + call getenv_loc('ROTPAR',rotname) + open (irotam,file=rotname,status='old',action='read') +c print *,"Processor",myrank," opened file IROTAM" +#ifndef CRYST_SC + call getenv_loc('ROTPARPDB',rotname_pdb) + open (irotam_pdb,file=rotname_pdb,status='old',action='read') +#endif + call getenv_loc('TORPAR',torname) + open (itorp,file=torname,status='old',action='read') +c print *,"Processor",myrank," opened file ITORP" + call getenv_loc('TORDPAR',tordname) + open (itordp,file=tordname,status='old',action='read') +c print *,"Processor",myrank," opened file ITORDP" + call getenv_loc('SCCORPAR',sccorname) + open (isccor,file=sccorname,status='old',action='read') +c print *,"Processor",myrank," opened file ISCCOR" + call getenv_loc('FOURIER',fouriername) + open (ifourier,file=fouriername,status='old',action='read') +c print *,"Processor",myrank," opened file IFOURIER" + call getenv_loc('ELEPAR',elename) + open (ielep,file=elename,status='old',action='read') +c print *,"Processor",myrank," opened file IELEP" + call getenv_loc('SIDEPAR',sidename) + open (isidep,file=sidename,status='old',action='read') +c print *,"Processor",myrank," opened file ISIDEP" +c print *,"Processor",myrank," opened parameter files" +#elif (defined G77) + open(1,file=pref_orig(:ilen(pref_orig))//'.inp',status='old') + open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown') +C open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown') +C Get parameter filenames and open the parameter files. + call getenv_loc('BONDPAR',bondname) + open (ibond,file=bondname,status='old') + call getenv_loc('THETPAR',thetname) + open (ithep,file=thetname,status='old') +#ifndef CRYST_THETA + call getenv_loc('THETPARPDB',thetname_pdb) + open (ithep_pdb,file=thetname_pdb,status='old') +#endif + call getenv_loc('ROTPAR',rotname) + open (irotam,file=rotname,status='old') +#ifndef CRYST_SC + call getenv_loc('ROTPARPDB',rotname_pdb) + open (irotam_pdb,file=rotname_pdb,status='old') +#endif + call getenv_loc('TORPAR',torname) + open (itorp,file=torname,status='old') + call getenv_loc('TORDPAR',tordname) + open (itordp,file=tordname,status='old') + call getenv_loc('SCCORPAR',sccorname) + open (isccor,file=sccorname,status='old') + call getenv_loc('FOURIER',fouriername) + open (ifourier,file=fouriername,status='old') + call getenv_loc('ELEPAR',elename) + open (ielep,file=elename,status='old') + call getenv_loc('SIDEPAR',sidename) + open (isidep,file=sidename,status='old') +#else + open(1,file=pref_orig(:ilen(pref_orig))//'.inp',status='old', + &action='read') + open (9,file=prefix(:ilen(prefix))//'.intin',status='unknown') +C open (18,file=prefix(:ilen(prefix))//'.entin',status='unknown') +C Get parameter filenames and open the parameter files. + call getenv_loc('BONDPAR',bondname) + open (ibond,file=bondname,status='old',action='read') + call getenv_loc('THETPAR',thetname) + open (ithep,file=thetname,status='old',action='read') +#ifndef CRYST_THETA + call getenv_loc('THETPARPDB',thetname_pdb) + print *,"thetname_pdb ",thetname_pdb + open (ithep_pdb,file=thetname_pdb,status='old',action='read') + print *,ithep_pdb," opened" +#endif + call getenv_loc('ROTPAR',rotname) + open (irotam,file=rotname,status='old',action='read') +#ifndef CRYST_SC + call getenv_loc('ROTPARPDB',rotname_pdb) + open (irotam_pdb,file=rotname_pdb,status='old',action='read') +#endif + call getenv_loc('TORPAR',torname) + open (itorp,file=torname,status='old',action='read') + call getenv_loc('TORDPAR',tordname) + open (itordp,file=tordname,status='old',action='read') + call getenv_loc('SCCORPAR',sccorname) + open (isccor,file=sccorname,status='old',action='read') + call getenv_loc('FOURIER',fouriername) + open (ifourier,file=fouriername,status='old',action='read') + call getenv_loc('ELEPAR',elename) + open (ielep,file=elename,status='old',action='read') + call getenv_loc('SIDEPAR',sidename) + open (isidep,file=sidename,status='old',action='read') +#endif +#ifndef OLDSCP +C +C 8/9/01 In the newest version SCp interaction constants are read from a file +C Use -DOLDSCP to use hard-coded constants instead. +C + call getenv_loc('SCPPAR',scpname) +#if defined(WINIFL) || defined(WINPGI) + open (iscpp,file=scpname,status='old',readonly,shared) +#elif (defined CRAY) || (defined AIX) + open (iscpp,file=scpname,status='old',action='read') +#elif (defined G77) + open (iscpp,file=scpname,status='old') +#else + open (iscpp,file=scpname,status='old',action='read') +#endif +#endif + call getenv_loc('PATTERN',patname) +#if defined(WINIFL) || defined(WINPGI) + open (icbase,file=patname,status='old',readonly,shared) +#elif (defined CRAY) || (defined AIX) + open (icbase,file=patname,status='old',action='read') +#elif (defined G77) + open (icbase,file=patname,status='old') +#else + open (icbase,file=patname,status='old',action='read') +#endif +#ifdef MPI +C Open output file only for CG processes +c print *,"Processor",myrank," fg_rank",fg_rank + if (fg_rank.eq.0) then + + if (nodes.eq.1) then + npos=3 + else + npos = dlog10(dfloat(nodes-1))+1 + endif + if (npos.lt.3) npos=3 + write (liczba,'(i1)') npos + form = '(bz,i'//liczba(:ilen(liczba))//'.'//liczba(:ilen(liczba)) + & //')' + write (liczba,form) me + outname=prefix(:lenpre)//'.out_'//pot(:lenpot)// + & liczba(:ilen(liczba)) + intname=prefix(:lenpre)//'_'//pot(:lenpot)//liczba(:ilen(liczba)) + & //'.int' + pdbname(1)=prefix(:lenpre)//'_'//pot(:lenpot)// + & liczba(:ilen(liczba)) + & //'.pdb' + mol2name=prefix(:lenpre)//'_'//pot(:lenpot)// + & liczba(:ilen(liczba))//'.mol2' + statname=prefix(:lenpre)//'_'//pot(:lenpot)// + & liczba(:ilen(liczba))//'.stat' + if (lentmp.gt.0) + & call copy_to_tmp(pref_orig(:ilen(pref_orig))//'_'//pot(:lenpot) + & //liczba(:ilen(liczba))//'.stat') + rest2name=prefix(:ilen(prefix))//"_"//liczba(:ilen(liczba)) + & //'.rst' + if(usampl) then + qname=prefix(:lenpre)//'_'//pot(:lenpot)// + & liczba(:ilen(liczba))//'.const' + endif + + endif +#else + outname=prefix(:lenpre)//'.out_'//pot(:lenpot) + intname=prefix(:lenpre)//'_'//pot(:lenpot)//'.int' + pdbname(1)=prefix(:lenpre)//'_'//pot(:lenpot)//'.pdb' + mol2name=prefix(:lenpre)//'_'//pot(:lenpot)//'.mol2' + statname=prefix(:lenpre)//'_'//pot(:lenpot)//'.stat' + if (lentmp.gt.0) + & call copy_to_tmp(pref_orig(:ilen(pref_orig))//'_'//pot(:lenpot) + & //'.stat') + rest2name=prefix(:ilen(prefix))//'.rst' +#endif +#if defined(AIX) || defined(PGI) + if (me.eq.king .or. .not. out1file) + & open(iout,file=outname,status='unknown') +c#define DEBUG +#ifdef DEBUG + if (fg_rank.gt.0) then + write (liczba,'(i3.3)') myrank/nfgtasks + write (ll,'(bz,i3.3)') fg_rank + open(iout,file="debug"//liczba(:ilen(liczba))//"."//ll, + & status='unknown') + endif +#endif +c#undef DEBUG + if(me.eq.king) then + open(igeom,file=intname,status='unknown',position='append') + open(ipdb,file=pdbname(1),status='unknown') + open(imol2,file=mol2name,status='unknown') + open(istat,file=statname,status='unknown',position='append') + else +c1out open(iout,file=outname,status='unknown') + endif +#else + if (me.eq.king .or. .not.out1file) + & open(iout,file=outname,status='unknown') +c#define DEBUG +#ifdef DEBUG + if (fg_rank.gt.0) then + print "Processor",fg_rank," opening output file" + write (liczba,'(i3.3)') myrank/nfgtasks + write (ll,'(bz,i3.3)') fg_rank + open(iout,file="debug"//liczba(:ilen(liczba))//"."//ll, + & status='unknown') + endif +#endif +c#undef DEBUG + if(me.eq.king) then + open(igeom,file=intname,status='unknown',access='append') + open(ipdb,file=pdbname(1),status='unknown') + open(imol2,file=mol2name,status='unknown') + open(istat,file=statname,status='unknown',access='append') + else +c1out open(iout,file=outname,status='unknown') + endif +#endif +csa csa_rbank=prefix(:lenpre)//'.CSA.rbank' +csa csa_seed=prefix(:lenpre)//'.CSA.seed' +csa csa_history=prefix(:lenpre)//'.CSA.history' +csa csa_bank=prefix(:lenpre)//'.CSA.bank' +csa csa_bank1=prefix(:lenpre)//'.CSA.bank1' +csa csa_alpha=prefix(:lenpre)//'.CSA.alpha' +csa csa_alpha1=prefix(:lenpre)//'.CSA.alpha1' +csac!bankt csa_bankt=prefix(:lenpre)//'.CSA.bankt' +csa csa_int=prefix(:lenpre)//'.int' +csa csa_bank_reminimized=prefix(:lenpre)//'.CSA.bank_reminimized' +csa csa_native_int=prefix(:lenpre)//'.CSA.native.int' +csa csa_in=prefix(:lenpre)//'.CSA.in' +c print *,"Processor",myrank,"fg_rank",fg_rank," opened files" +C Write file names + if (me.eq.king)then + write (iout,'(80(1h-))') + write (iout,'(30x,a)') "FILE ASSIGNMENT" + write (iout,'(80(1h-))') + write (iout,*) "Input file : ", + & pref_orig(:ilen(pref_orig))//'.inp' + write (iout,*) "Output file : ", + & outname(:ilen(outname)) + write (iout,*) + write (iout,*) "Sidechain potential file : ", + & sidename(:ilen(sidename)) +#ifndef OLDSCP + write (iout,*) "SCp potential file : ", + & scpname(:ilen(scpname)) +#endif + write (iout,*) "Electrostatic potential file : ", + & elename(:ilen(elename)) + write (iout,*) "Cumulant coefficient file : ", + & fouriername(:ilen(fouriername)) + write (iout,*) "Torsional parameter file : ", + & torname(:ilen(torname)) + write (iout,*) "Double torsional parameter file : ", + & tordname(:ilen(tordname)) + write (iout,*) "SCCOR parameter file : ", + & sccorname(:ilen(sccorname)) + write (iout,*) "Bond & inertia constant file : ", + & bondname(:ilen(bondname)) + write (iout,*) "Bending parameter file : ", + & thetname(:ilen(thetname)) + write (iout,*) "Rotamer parameter file : ", + & rotname(:ilen(rotname)) + write (iout,*) "Threading database : ", + & patname(:ilen(patname)) + if (lentmp.ne.0) + &write (iout,*)" DIRTMP : ", + & tmpdir(:lentmp) + write (iout,'(80(1h-))') + endif + return + end +