$FMOPRP group                   (optional for FMO runs)                         
                                                                                
    Options setting up SCF convergers, parallelization and                      
properties are given here.                                                      
                                                                                
       I. Parameters for SCF convergers and initial guess                       
                                                                                
MAXIT  = the maximum number of monomer SCF iterations.                          
         (default 30)                                                           
                                                                                
CONV   = monomer SCF energy convergence criterion.                              
         It is considered necessary to set CONV in $SCF to                      
         a value less or equal to the CONV in $FMO.                             
         Usually 1e-7 works well, but for poorly converging                     
         monomer SCF (frequently seen with DFT) one order,                      
         smaller value for CONV in $SCF is recommended,                         
         (1e-7 in $FMO and 1e-8 in $SCF) (default: 1e-7).                       
                                                                                
NGUESS = controls initial guess (cumulative options, add                        
         all options desired) (default=2):                                      
         1 run free monomer SCF                                                 
         2 if set, dimer density/orbitals are constructed                       
           from the "sum" of monomer quantities, otherwise                      
           Huckel guess will be used for dimers,                                
           and the same applies to trimers.                                     
         4 insert HMO projection operator in Huckel guess                       
         8 apply dimer HO projection to dimer initial guess                     
        16 do RHF for each dimer and trimer, then run DFT.                      
       128 do not use orbitals from the previous geometry                       
           during geometry optimization. This is mostly                         
           useful for multilayer optimizations, when this                       
           choice must always be set if basis sets differ.                      
       256 if SCF does not converge, try the alternative                        
           converger (flip between SOSCF and DIIS).                             
           If 2048 is not added, the alternative converger                      
           will start up with the final orbitals of the                         
           unconverged SCF.                                                     
       512 reorder initial orbitals manually using $GUESS                       
           options (IORDER), applies to MCSCF layers only.                      
      2048 a modifier of 256 - when both 256 and 2048 are                       
           set, the alternative converger will use the                          
           same initial set of initial orbitals as the                          
           unconverged SCF.                                                     
                                                                                
IJVEC  = Index array enabling reading $VEC inputs defining                      
         initial orbitals for individual n-mer runs.                            
         This consists of quintuplets:                                          
         ifg1,jfg1,kfg1,ilay1,norb1, ifg2,jfg2, ...                             
         The first pair indexes $VEC1 with ifg1,jfg1,kfg1                       
         for layer ilay1 expecting norb1 MOs.                                   
         The second quintuplet handles $VEC2 etc.                               
         ifg,0,0,ilay1,norb1 is used for monomer IFG,                           
         ifg,jfg,0,ilay1,norb1 is used for dimer IFG,JFG.                       
         ifg equal to 0 in a quintuplet ends the list.                          
         $VEC groups must be used consequently from $VEC1.                      
         (default: all 0s; at most 100 can be given)                            
                                                                                
MODORB = controls whether orbitals and energies are                             
         exchanged between fragments (additive options).                        
       1 exchange orbitals if set, otherwise densities                          
       2 exchange energies                                                      
         DFT, ROHF, UHF and MCSCF, SCZV and PIEDA require                       
         MODORB=3.  MODORB=3 is in general more robust,                         
         because it provides a better initial guess.                            
         (Default: 0 for RHF, 3 for DFT/ROHF/UHF/MCSCF.)                        
                                                                                
MCONV  = an array specifying SCF convergers for each FMO                        
         step.  Individually (MCONV(2) is for monomers,                         
         MCONV(4) for dimers, MCONV(9) for trimers). Each                       
         array element is set to A1+A2+A3, where A1                             
         determines SCF and A2 MCSCF convergers, and A3 is                      
         the direct/conventional bit common for all SCF                         
         methods.  MCONV is an additive option:                                 
            A1(SCF):          A2(MCSCF):     A3(direct)                         
          1 EXTRAP       1024 FOCAS          256 FDIFF                          
          2 DAMPH        2048 SOSCF          512 DIRSCF                         
          4 VSHIFT       4096 DROPC                                             
          8 RSTRCT       8192 CANONC                                            
         16 DIIS        16384 FCORE                                             
         32 DEM         32768 FORS                                              
         64 SOSCF       65536 n/a                                               
        128 LOCOPT     131072 EKT                                               
                       262144 LINSER                                            
                       524288 JACOBI                                            
                      1048576 QUD                                               
         There are some limitations on joint usage for each                     
         that can be understood from $SCF or $MCSCF.                            
         If set to -1, the defaults given in $SCF or $MCSCF                     
         are used.  See MCONFG. (default: all -1's).                            
                                                                                
MCONFG = an array specifying SCF convergers for each                            
         fragment during the monomer SCF runs. The value -1                     
         means use the default (defined by MCONV).                              
         The priority in which convergers are chosen is:                        
            MCONFG (highest), if not defined MCONV,                             
            if not defined, $SCF (lowest).                                      
         This option is useful in case of poor convergence                      
         caused by charge fluctuations and SCF converger                        
         problems in particular, SOSCF instability for poor                     
         initial guess.  Default: all -1.                                       
                                                                                
ESPSCA = scale factors for up to nine initial monomer SCF                       
         iterations.  ESPs will be multiplied by these                          
         factors, to soften the effect of environment and                       
         help convergence. At most nine factors can be                          
         defined. (default: all 1.0's)                                          
                                                                                
CNVDMP = damping of SCF convergence, that is, loosen                            
         convergence during the initial monomer SCF                             
         iterations to gain speed.  CONV in $SCF and ITOL                       
         and ICUT in $CONTRL are modified.                                      
         CONV is set roughly to min(DE/CNVDMP,1e-4), where                      
         DE is the convergence in energy at the given                           
         monomer SCF iteration.  It is guaranteed that                          
         CONV,ITOL and ICUT at the end will be set to the                       
         values given in $SCF. Damping is disabled if                           
         CNVDMP is 0.  Reasonable values are 10-100.                            
         Care should be taken for restart jobs: since                           
         restart jobs do not know how well FMO converged,                       
         restart jobs start out at the same rough values as                     
         nonrestart jobs, if CNVDMP is used. Therefore for                      
         restart jobs either set CNVDMP appropriately for                       
         the restart (i.e., normally 10-100 times larger                        
         than for the original run) or turn this option                         
         off, otherwise regressive convergence can incur                        
         additional iterations (default: 0).                                    
                                                                                
COROFF = parameter turning off DFT in initial monomer SCF,                      
         similar to SWOFF. COROFF is used during monomer                        
         SCF, and it turns off DFT until monomer energies                       
         converge to this threshold. If COROFF is nonzero,                      
         SWOFF is ignored during monomer SCF, but is used                       
         for dimers and trimer iterations.  Setting                             
         COROFF=1e-3 and SWOFF=0 usually produces good DFT                      
         convergence.  COROFF may be thought as a macro-                        
         analogue of SWOFF. If monomer SCF converges poorly                     
         (>25 iterations), it is also recommended to raise                      
         CONV in $SCF to 1e-8 (if CONV in $FMO is 1e-7).                        
         Default:1.0E-3  (0.0 skips this option).                               
                                                                                
NPCMIT = the maximum number of FMO/PCM[m] iterations,                           
         applicable to m>1 only (for m=1, $FMOPRP MAXIT is                      
         used).  NPCMIT=2 can be thought as having special                      
         meaning: it is used to define FMO/PCM[l(m)] runs                       
         by forcing the FMO/PCM loop run only twice, which                      
         corresponds to determining PCM charges during the                      
         first iteration (and the m-body level) and then                        
         using them during the second iteration (l-body).                       
         For FMO/PCM[l(m)] only l=1 is implemented and "m"                      
         is given in $PCM IFMO.  Default: 30.                                   
                                                                                
CNVPCM = convergence threshold for FMO/PCM[m] iterations,                       
         applicable to m>1 only (for m=1, $FMOPRP CONV is                       
         used).  CNVPCM is applied to the total FMO energy                      
         Default: 1.0D-07 Hartree.                                              
                                                                                
PCMOFF = parameter turning PCM off in initial monomer SCF                       
         iterations, analogous to COROFF. PCM is turned                         
         off, until convergence reaches PCMOFF. PCMOFF=0                        
         disables this feature.  Default: 0.0                                   
                                                                                
NCVSCF = an array of 2 elements to alter SCF convergers.                        
         After NCVSCF(1) monomer SCF iterations the SCF                         
         converger will switch between SOSCF <-> FULLNR.                        
         This option is useful in converging difficult                          
         cases in the following way:                                            
          $SCF diis=.t. soscf=.f. $end                                          
          $FMOPRP NCVSCF(1)=2 mconv(4)=65 $end                                  
         This results in the initial 2 monomer SCF                              
         iterations being done with DIIS, then a switch to                      
         SOSCF occurs. mconv(4)=65 switches to SOSCF for                        
         dimers.                                                                
         Note that NCVSCF(1) will only overwrite MCONV, but                     
         not MCONFG. The SCF converger in MCONV(2) will be                      
         enforced after NCVSCF(2) monomer SCF iterations,                       
         overwriting MCONFG as well. This is useful for                         
         the most obnoxiously converging cases. See other                       
         FMO documentation.                                                     
         Default: 9999,9999 (which means do not use).                           
                                                                                
NAODIR = a parameter to decide whether to enforce DIRSCF.                       
         Useful for incore integral runs in parallel.                           
         NAODIR is the number of AO orbitals that is                            
         expected to produce 100,000,000 non-zero                               
         integrals.  Using this and assuming NAO**3.5                           
         dependence, the program will then guess how many                       
         integrals will each n-mer have and whether they                        
         will fit into the available memory. If they are                        
         determined not to fit, DIRSCF will be set true.                        
         This option overwrites MCONV but not MCONFG.                           
         If set to 0, then the default in-core integral                         
         strategy is used.  (default=0)                                         
                                                                                
VDWRAD = array of van der Waals radii in Angstrom, one for                      
         each atom in the periodic table. Reasonable values                     
         are set only for a few light atoms and otherwise a                     
         value of 2.5 is used. VDWRAD values are used only                      
         to compute distance between fragments and thus                         
         somewhat affect all distance-based approximations.                     
                                                                                
                                                                                
       II. Parameters defining parallel execution                               
                                                                                
MODPAR = parallel options (additive options)                                    
         (default: 13, which is 1+4+8)                                          
         1 turns on/off heavy job first strategy (reduces                       
           waiting on remaining jobs at barrier points)                         
           (see also 8)                                                         
         4 broadcast all fragments done by a group at once                      
           rather than fragment by fragment.                                    
         8 alters the behavior of fragment initialixation:                      
           if set, fragments are always done in the reverse                     
           order (nfg, nfg-1, ...1) because distance                            
           calculation costs decrease in the same order and                     
           they usually prevail over making Huckel orbitals                     
           or running free monomer SCF. Note that during                        
           SCC (monomer SCF) iterations the order in which                      
           monomers are done is determined by MODPAR=1.                         
        16 if set, hybrid orbital projectors will not be                        
           parallelized (may be useful on slow networks)                        
        32 reserved                                                             
        64 Broadcast F40 for FMO restarts. F40 should only                      
           be precopied to the grand master scratch                             
           directory and it should NOT exist on all slaves.                     
       256 Replace I/O to fragment density file by                              
           parallel broadcasts from group masters                               
       512 Use DDI memory to store fragment densities                           
           during the monomer step, using supervector                           
           (smallest memory).                                                   
      1024 Use DDI memory to store fragment densities                           
           during the monomer step, using supervector                           
           (smallest communications).                                           
           Only one option out of 512 and 1024 may be used.                     
                                                                                
                                                                                
NGRFMO = an array that sets the number of GDDI compute                          
         groups during various stages of the calculation.                       
         The first ten elements are used for layer 1, the                       
         next 10 for layer 2, etc.                                              
            ngrfmo(1) monomer SCF                                               
            ngrfmo(2) dimers                                                    
            ngrfmo(3) trimers                                                   
            ngrfmo(4) correlated monomers                                       
            ngrfmo(5) separated dimers                                          
            ngrfmo(6) SCF monomers in FMO-MCSCF (MCSCF                          
               monomer will be done with ngrfmo(1) groups)                      
            ngrfmo(7) SCF dimers in FMO-MCSCF (MCSCF dimer                      
               be done with ngrfmo(2) groups)                                   
            ngrfmo(8-10) reserved                                               
         If any of them is zero, the corresponding stage                        
         runs with the previously defined number of groups.                     
         If NGRFMO option is used, it is recommended to set                     
         NGROUP in $GDDI to the total number of nodes.                          
         (default: 0,0,0,0).                                                    
                                                                                
MANNOD = manually define node division into groups.                             
         Contrary to MANNOD in $GDDI and here it is defined                     
         for each FMO stage (see NGRFMO) in each layer.                         
         If MANNOD values are set at all, it is required                        
         that they be given corresponding to the first                          
         nonzero NGRFMO value. The MANNOD values should be                      
         given for each nonzero NGRFMO.                                         
         E.g. ngrfmo(1)=6,3,0,0,0, 0,0,0,0,0,  4,3                              
              mannod(1)=4,2,2,2,2,2, 5,5,4, 4,4,3,3, 6,6,2                      
         where 6 groups are defined for monomers in layer                       
         1, then 3 for dimers in layer 1, and 4 and 3                           
         groups for monomers and dimers in layer 2.                             
         (default: all -1 which means do not use).                              
                                                                                
Note that nodes with very large counts may be too large for                     
good scaling with certain kinds of FMO runs.  Any such fat                      
nodes can be divided into "logical nodes" by using the                          
kickoff option :cpus= for TCP/IP, or DDI_LOGICAL_NODE_SIZE                      
for MPI runs.  See the DDI instructions.                                        
                                                                                
LOADBF = an array for semi-dynamic load balancing,                              
         specifying the basis set sizes. If it is exceeded,                     
         static load balancing is used. LOADBF has the same                     
         structure as NGRFMO.                                                   
         (Default: all 0's (disabling this feature).                            
                                                                                
LOADGR = an array for semi-dynamic load balancing,                              
         specifying the group sizes to be used with LOADBF.                     
         LOADGR has the same structure as NGRFMO.                               
         LOADGR is normally used with MANNOD, because it is                     
         only useful with uneven group sizes. The main                          
         purpose is to handle cases when only a few very                        
         large fragments are mixed with many small ones.                        
         An example: LOADBF(1)=200,400 LOADGR(1)=1,4                            
         NGRFMO(1)=3,5  MANNOD(1)=11,1,1, 3,3,3,3,1                             
         Monomers whose size exceeds 200 basis functions                        
         are executed on 1 group consisting of 11 nodes                         
         with static load balancing. Other monomers are                         
         computed on 2 groups consisting of 1 node with                         
         dynamic load balancing. Dimers whose size exceeds                      
         400 basis functions are executed on 4 groups                           
         consisting of 3 nodes with static load balancing.                      
         Other monomers are computed on 1 group consisting                      
         of 1 node with dynamic load balancing.                                 
         Note that after finishing static work load, large                      
         groups will join the dynamic load balancing pool.                      
         (Default: all 0's (disabling this feature).                            
                                                                                
       III. Orbital conversion                                                  
                                                                                
File F40 that contains orbital density can be manipulated                       
in some way to change the information stored in it without                      
running any FMO calculations.  Such conversion requires                         
irest=2 and the basis sets in the input should define the                       
old (before conversion) format. The results will be stored                      
in F30.  You should then rename it to F40 and use in a                          
consequent run (with irest>=2).                                                 
                                                                                
Two basic conversion types are supported: A) changing RHF                       
into MCSCF and B) changing basis sets for RHF.  RHF and                         
MCSCF use different stucture of the restart file (F40) and                      
therefore conversion is necessary.                                              
                                                                                
For type A the following orbital reordering manipulation                        
before storing the results can be done, for example                             
 $guess guess=modaf norder=1 iorder(28)=34,28                                   
                                                                                
Type B is typically used for preparing good initial                             
orbitals for hard to converge cases. E.g., you can use                          
something like 6-21G to converge the orbitals and then                          
convert F40 to be used with 6-311G*. At present there is a                      
limitation that only density based (MODORB=0) files may be                      
converged, i.e. you cannot do it for DFT and MCSCF.                             
                                                                                
MAXAOC = The new (i.e., after conversion) maximum number of                     
         AOs per fragment. If you don't know what it should                     
         be you can run a CHECK job with the new basis set                      
         and find the number in "Max AOs per frg:".                             
         If this number is equal to the old value, then                         
         type A is chosen.                                                      
                                                                                
IBFCON = the array giving pairs of the old and new numbers                      
         of AOs for each atom in $DATA (type B only).                           
                                                                                
MAPCON = maps determining how to copy old orbitals into new                     
         (type B only).  See the example.                                       
                                                                                
Example: $DATA contains only H and O (in this order), F40                       
was computed with 6-31G and you want to convert to 6-31G**.                     
One water per fragment.                                                         
         MAXAOC=25   25=5*2+15=new basis size for 6-31G**                       
         IBFCON(1)=2,5, 9,15                                                    
           2 and 5 for H (6-31 and 6-31G**), 9 and 15 for O                     
         MAPCON(1)=1,2,0,0,0,                                                   
                   1,2,3,4,5,6,7,8,9,0,0,0,0,0,0                                
Here we copy the two s functions of each H, and add p                           
polarization p to each H (3 0's), and similarly we copy                         
nine s,p functions for O, and add d polarization (6 0's)                        
                                                                                
In order to construct MAPCON, you should know in what order                     
Gaussian primitives are stored. The easiest way to learn                        
this is to run a simple calculation and check the output                        
(SHELL information).                                                            
                                                                                
       IV. Printing, properties, restart, and dimensions.                       
                                                                                
NPRINT = controls print-out (bit additive)                                      
         bits 1-2                                                               
           0 normal output                                                      
           1 reduced output (recommended for single points)                     
           2 small output (recommended for MD)                                  
           3 minimal output (for large scale production MD)                     
         4 print interfragment distances.  Note: any of                         
           RESPAP, RESPPC, or RESDIM must be non-zero or                        
           otherwise nothing will be printed. If you only                       
           want the distances but no approximations, set                        
           the thresholds to huge values, e.g. resdim=1000.                     
         8 print Mulliken charges.                                              
           Note: RESPPC must be set (non-zero), see above.                      
        16 special test run to check for errors in $FMOBND.                     
        32 increase the print-out/punch-out level a) on the                     
           last SCC iteration for monomers and b) for all                       
           dimers/trimers. It can be employed to plot                           
           fragment MOs while using $CONTRL NPRINT=-5 to                        
           reduce monomer output.                                               
        64 print atomic coordinates for each fragment.                          
       128 skip printing ES dimer energies during their                         
           calculation (but a summary will list them).                          
           Note that choosing 128+2 will reduce the                             
           NFG^2 memory requirement for DFTB in half.                           
                                                                                
PRTDST = array of four print-out thresholds:                                    
         1. print all pairs of fragments separated by less                      
         than PRTDST(1).                                                        
         2. print a warning if two fragments are closer                         
         than PRTDST(2), intended mostly to monitor                             
         suspicious geometries during optimization.                             
         3. print a warning if two fragments are closer                         
         than PRTDST(3) and have no detached bond between                       
         them, intended to check input.                                         
         PRTDST(3) values should slightly exceed the                            
         longest detached bond in the system.                                   
         4. PRTDST(4) has a completely different meaning.                       
         In the summary of pair interactions, only those                        
         values will be printed, which are larger than                          
         PRTDST(4), in the units of kcal/mol.                                   
         Using zero for PRTDST(1) and PRTDST(2) turns them                      
         off.  Similarly, use PRTDST(3)=-1 to turn it off.                      
         PRTDST has no units, as it applies to unitless FMO                     
         distances (e.g., 0.5 means half the sum of van der                     
         Waals radii for the closest pair of atoms).                            
         (default: 0.0, 0.5, 0.6, 0.0)                                          
                                                                                
IREST  = restart level (to use it, you must copy .F40.000                       
         to the scratch disk of either the first node only                      
         (if MODPAR=64) or all nodes (otherwise).                               
         Multilayer FMO can be restarted if either all                          
         layers use the same basis set or if you save                           
         the .F40.000 file for layer 1 and use it for the                       
         same layer.                                                            
         0 no restart                                                           
         2 restart monomer SCF (SCC).                                           
         4 restart dimers. Requires monomer energies be                         
           given in $FMOENM. Some or no dimer energies                          
           may also be given in $FMOEND, in which case                          
           those dimers with energies will not be run.                          
           Usually the only property that can be obtained                       
           with IREST=4 is the energy. The only exception                       
           is: a) 1024 was added to IREST when monomer SCF                      
           was run and b) property restart files (*.F38*)                       
           from each node were saved and copied to the                          
           scratch directory for the IREST=1028 job. If                         
           these two conditions are met, gradient and ES                        
           moments can be restarted with IREST=1028.                            
      1024 write property restart files during monomer SCF                      
           and/or use them to restart gradient and/or ES                        
           moments. No other property may be restarted.                         
Note that monomer restarts (irest=2) do not need adding                         
1024, as the properties are recomputed.  1024 should only                       
be used for IREST=4 (or for IREST=0 to save restart data).                      
                                                                                
MODPRP = some extra FMO properties (bit additive)                               
         Default: 0.                                                            
       1 total electron density (AO-basis matrix, written                       
         to F10: useful to create initial orbitals for ab                       
         initio).                                                               
       2 reserved.                                                              
       4 electron density on a grid.                                            
       8 if set, the grid output is a "sparse cube                              
         file", otherwise a "Gaussian cube file".                               
      16 automatically generate grid for modprp = 4 or 8.                       
      32 molecular electrostatic potential on a grid.                           
     128 spin density on a grid                                                 
         Only one bit out of 4 and 8 may be set.                                
         Default: 0.                                                            
                                                                                
NGRID  = three integers, giving the number of 3D grid                           
         points for monomers with NOPFRG=4 in x,y and z                         
         directions (default 0,0,0).                                            
                                                                                
GRDPAD = Grid padding. Contributions to density on grid                         
         will be restricted to the box surrounding an n-mer                     
         with each atom represented by a sphere of GRDPAD                       
         vdW radii. In general the finer effects one is                         
         interested in, the larger GRDPAD should be. For                        
         example, if one plots not density, but density                         
         differences and a very small cutoff is used, then                      
         a larger value of GRDPAD (2.5 or 3.0) may be                           
         preferred.                                                             
         Default: 2.0.                                                          
                                                                                
IMECT  = The partitioning method for the interfragment                          
         charge transfer (computed from Mulliken charges).                      
         IMECT pertains only to those dimers between which                      
         a bond is detached.                                                    
         IMECT=0,1,2,3,4 are supported (see source code).                       
         (default: 4)                                                           
                                                                                
         V. Interaction analysis (PIEDA)                                        
                                                                                
IPIEDA = 0 skip the analysis (default)                                          
         1 perform brief PL-state analysis (FMO pair                            
           interactions)                                                        
         2 perform full PL-state analysis with the PL0-                         
           state data.                                                          
         PCM may be used with IPIEDA=0 or 1.                                    
                                                                                
N0BDA  = gives the number of detached bonds.  This                              
         parameter should be set to a nonzero value only in                     
         runs that produce BDA pair energies.  (default: 0)                     
                                                                                
R0BDA  = array of the detached bond lengths, whose number                       
         is N0BDA.  R0BDA must be given if E0BDA is used.                       
                                                                                
E0BDA  = the array of BDA pair energies, whose number is                        
         N0BDA*4.                                                               
                                                                                
EFMO0  = the array of the free state fragment energies,                         
         first NFRAG correlated, then NFRAG uncorrelated                        
         values.                                                                
                                                                                
EPL0DS = monomer polarization energies, first NFRAG values                      
         of PL0d, then NFRAG values of PL0s, then NFRAG                         
         values of PL0DI.                                                       
                                                                                
EINT0  = the total components for the PL0 state:                                
         ES0, EX0, CT+mix0, DI0.                                                
                                                                                
   None of the PIEDA input values (except IPIEDA) are to be                     
manually prepared, all should come from the punch file of                       
preceeding calculations.                                                        
                                                                                
The brief order of IPIEDA=2 execution is:                                       
1. run FMO0.                                                                    
2. compute BDA energies (if detached bonds are present),                        
using sample files in tools/fmo/pieda. To do this, one                          
needs only R0BDA for a given system.  R0BDA is punched by                       
any FMO run at the very beginning, so NBODY=0 type of run                       
might be used to generate it.                                                   
3. The results of (1) are EFMO0; the results of (2) are                         
E0BDA; use them to run PL0, whose results will be EPL0DS                        
and EINT0.                                                                      
4. Run PL with the results of (1),(2) and (3).                                  
                                                                                
The alternative is to run IPIEDA=1, which requires none of                      
the above data, but it will use E0BDA is available.                             
                                                                                
==========================================================                      
                                                                                
                                                                                
                                                                                
                                                                                
==========================================================                      

generated on 7/7/2017