Révision 9 src/Path.f90

Path.f90 (revision 9)
409 409
  CASE (1)
410 410
     call getarg(1,FileIn)
411 411
     IF ((FileIn=="-help").OR.(FileIn=="--help")) THEN
412
        WRITE(*,*) "Path mini-help"
412
        WRITE(*,*) "Opt'n Path mini-help"
413 413
        WRITE(*,*) "--------------"
414 414
        WRITE(*,*) ""
415 415
        WRITE(*,*) "Use: Path Input_file Output_file"
416 416
        WRITE(*,*) "Input_file starts with a Namelist called path"
417 417
        WRITE(*,*) ""
418
        WRITE(*,*) "Compulsory variables are:"
419
        WRITE(*,*) "NGeomi: Number of geometries defining the Initial path"
420
        WRITE(*,*) "NGeomf: Number of geometries defining the Final path"
421
        WRITE(*,*) "Nat   : Number of atoms"
418
! The following has been generated (March 19, 2013) using the Mini_help.tex file
419
! 1) Edit Mini_help.tex
420
! 2) latex Mini_help.tex
421
! 3) catdvi -e 1 -U  Mini_help.dvi | sed -re "s/\[U\+2022\]/-/g" | sed -re "s/([^^[:space:]])\s+/\1 /g" > file.txt
422
! 4) edit file.txt to keep only the following lines, and to reformat a bit
423
! 5) awk '{print "WRITE(*,*) \"" $0 "\""}' file.txt > help
424
! 5) cut&paste help in Path.f90 ...
425
   WRITE(*,*) " &path"
426
   WRITE(*,*) " nat=3, ! Number of atoms"
427
   WRITE(*,*) " ngeomi=3, ! Number of initial geometries"
428
   WRITE(*,*) " ngeomf=12, !Number of geometries along the path"
429
   WRITE(*,*) " OptReac=.T., ! Do you want to optimize the reactants ?"
430
   WRITE(*,*) " OptProd=.T., ! Optimize the products"
431
   WRITE(*,*) " coord='zmat', ! We use Z-matrix coordinates"
432
   WRITE(*,*) " maxcyc=31, ! Max number of iterations"
433
   WRITE(*,*) " IReparam=2,! re-distribution of points along the path every 2 iterations"
434
   WRITE(*,*) " ISpline=50, ! Start using spline interpolation at iteration 50"
435
   WRITE(*,*) " Hinv=.T. , ! Use inverse of the Hessian internally (default: T)"
436
   WRITE(*,*) " MW=T, ! Works in Mass Weighted coordiante (default T)"
437
   WRITE(*,*) " PathName='Path_HCN_zmat_test', ! Name of the file used for path outputs"
438
   WRITE(*,*) " prog='gaussian',! we use G03 to get energy and gradients"
439
   WRITE(*,*) " SMax=0.1 ! Displacement cannot exceed 0.1 atomic units (or mass weighted at. unit)"
440
   WRITE(*,*) " /"
441
   WRITE(*,*) "  3"
442
   WRITE(*,*) " Energy : 0.04937364"
443
   WRITE(*,*) " H 0.0000 0.0000 0.0340"
444
   WRITE(*,*) " C 0.0000 0.0000 1.1030"
445
   WRITE(*,*) " N 0.0000 0.0000 2.2631"
446
   WRITE(*,*) "  3"
447
   WRITE(*,*) " Energy : 0.04937364"
448
   WRITE(*,*) " H 0.0000 1.1000 1.1030"
449
   WRITE(*,*) " C 0.0000 0.0000 1.1030"
450
   WRITE(*,*) " N 0.0000 0.0000 2.2631"
451
   WRITE(*,*) "3"
452
   WRITE(*,*) " CNH"
453
   WRITE(*,*) "H 0.000000 0.000000 3.3"
454
   WRITE(*,*) "C 0.000000 0.000000 1.1"
455
   WRITE(*,*) "N 0.000000 0.000000 2.26"
456
   WRITE(*,*) "%chk=Test"
457
   WRITE(*,*) "#P AM1 FORCE"
458
   WRITE(*,*) " HCN est bien"
459
   WRITE(*,*) ""
460
   WRITE(*,*) "0,1"
461
   WRITE(*,*) "H 0.000000 0.000000 0.000000"
462
   WRITE(*,*) "C 0.000000 0.000000 1.000"
463
   WRITE(*,*) "N 0.000000 0.000000 3.00"
464
   WRITE(*,*) ""
465
   WRITE(*,*) "*******"
466
   WRITE(*,*) "* Compulsory variables are:"
467
   WRITE(*,*) "*******"
468
   WRITE(*,*) "NGeomi: Number of geometries defining the Initial path"
469
   WRITE(*,*) "NGeomf: Number of geometries defining the Final path"
470
   WRITE(*,*) "Nat: Number of atoms"
471
   WRITE(*,*) ""
472
   WRITE(*,*) "*******"
473
   WRITE(*,*) "* Other options:"
474
   WRITE(*,*) "*******"
475
   WRITE(*,*) "Input: String that indicates the type of the input geometries. Accepted values are: Cart (or"
476
   WRITE(*,*) "    Xmol or Xyz), Vasp, Turbomole or Siesta."
477
   WRITE(*,*) "Prog: string that indicates the program that will be used for energy and gradient calculations."
478
   WRITE(*,*) "    Accepted values are: Gaussian, Mopac, Vasp, Turbomole, Siesta or Ext."
479
   WRITE(*,*) ""
480
   WRITE(*,*) ""
481
   WRITE(*,*) "        - In case of a Gaussian calculations, input must be set to Cart. One example of a gaus-"
482
   WRITE(*,*) "          sian input should be added at the end of the input file.See example file Test_HCN_zmat_g03.path."
483
   WRITE(*,*) "        - In the case of a VASP calculation, if input is set to Cart, then the preamble of a"
484
   WRITE(*,*) "          VASP calculation s"
485
   WRITE(*,*) "        - Mopac: Examples using sequential call to MOPAC2009 to calculate the energies and"
486
   WRITE(*,*) "          forces along the path. hould be added at the end of the input file. See example file"
487
   WRITE(*,*) "          Test_VASP_cart.path. In the case of a VASP calculation, one should also give value"
488
   WRITE(*,*) "          of the RunMode variable ."
489
   WRITE(*,*) "        - In the case of a SIESTA calculation, an example of a Siesta input file should be added"
490
   WRITE(*,*) "          at the end of the input file. See Test_Siesta.path."
491
   WRITE(*,*) ""
492
   WRITE(*,*) "RunMode: When running on a multi-processor machine, this indicates wether Opt'n Path"
493
   WRITE(*,*) "    should calculate the energy and gradient of the whole path in parallel or not. User has"
494
   WRITE(*,*) "    two options. One is to calculate the energy and gradient of each point sequentially. This"
495
   WRITE(*,*) "    is usefull when running on one (or two) processors. In this case, RunMode should be put"
496
   WRITE(*,*) "    to SERIAL.When running in parallel with 8 or more processors, one can use VASP to"
497
   WRITE(*,*) "    calculate simultaneously the energies and gradients for all points, as in a normal NEB cal-"
498
   WRITE(*,*) "    culation. In this case, RunMode must be set to PARA. For now, this is usefull only for VASP."
499
   WRITE(*,*) ""
500
   WRITE(*,*) "ProgExe: Name (with full path) of the executable to be used to get energies and gradients."
501
   WRITE(*,*) "    For example, if VASP is used in parallel, one might have something like:"
502
   WRITE(*,*) "    ProgExe='/usr/local/mpich/bin/mpirun -machinefile machine -np 8 ~/bin/VASP_46'."
503
   WRITE(*,*) "    Another option that I use, is to put ProgExe='./run_vasp' and I put every option needed"
504
   WRITE(*,*) "    to run VASP into the run_vasp file."
505
   WRITE(*,*) "EReac: (REAL) By default, Opt'n Path does not compute the energy of the reactants and"
506
   WRITE(*,*) "    products. This thus indicates the reactants energy to Opt'n Path to have better plots at"
507
   WRITE(*,*) "    the end."
508
   WRITE(*,*) "EProd: (REAL) By default, Opt'n Path does not compute the energy of the reactants and"
509
   WRITE(*,*) "    products. This thus indicates the products energy to Opt'n Path to have better plots."
510
   WRITE(*,*) ""
511
   WRITE(*,*) "PathName: Prefix used to save the path. Default is Path."
512
   WRITE(*,*) "Poscar: string that will be used as the prefix for the different POSCAR files in a VASP calcu-"
513
   WRITE(*,*) "    lations. Usefull only if PathOnly=.TRUE., not used for internal calculations."
514
   WRITE(*,*) "CalcName: Prefix for the files used for the energy and gradient calculations"
515
   WRITE(*,*) ""
516
   WRITE(*,*) "ISuffix: Suffix for the input file used for energy and gradient calculations. The full inputfile"
517
   WRITE(*,*) "    name will thus be CalcName.ISuffix."
518
   WRITE(*,*) "OSuffix: Suffix for the output file used for energy and gradient calculations. The full outputfile"
519
   WRITE(*,*) "    name will thus be CalcName.OSuffix."
520
   WRITE(*,*) ""
521
   WRITE(*,*) "IGeomRef: Index of the geometry used to construct the internal coordinates. Valid only for"
522
   WRITE(*,*) "     Coord=Zmat, Hybrid or Mixed."
523
   WRITE(*,*) "Fact: REAL used to define if two atoms are linked. If d(A,B) =< fact* (rcov(A) + rcov(B)),"
524
   WRITE(*,*) "     then A and B are considered Linked."
525
   WRITE(*,*) ""
526
   WRITE(*,*) "debugFile: Name of the file that indicates which subroutine should print debug info."
527
   WRITE(*,*) "Coord: System of coordinates to use. Possible choices are:"
528
   WRITE(*,*) "        - CART (or Xyz): works in cartesian"
529
   WRITE(*,*) "        - Zmat: works in internal coordinates (Zmat)"
530
   WRITE(*,*) "        - Mixed: frozen atoms, as well as atoms defined by the 'cart' array(see below) are"
531
   WRITE(*,*) "          describe in CARTESIAN, whereas the others are described in Zmat"
532
   WRITE(*,*) "        - Baker: use of Baker coordinates, also called delocalized internal coordinates"
533
   WRITE(*,*) "        - Hybrid: geometries are described in zmat, but the gradient are used in cartesian"
534
   WRITE(*,*) "Step_method: method to compute the step for optimizing a geometry; choices are:"
535
   WRITE(*,*) ""
536
   WRITE(*,*) "        - RFO: Rational function optimization"
537
   WRITE(*,*) "        - GDIIS: Geometry optimization using direct inversion in the iterative supspace"
538
   WRITE(*,*) "HUpdate: method to update the hessian. By default, it is Murtagh-Sargent Except for geom-"
539
   WRITE(*,*) "     etry optimization where it is BFGS."
540
   WRITE(*,*) "MaxCyc: maximum number of iterations for the path optimization"
541
   WRITE(*,*) ""
542
   WRITE(*,*) "Smax: Maximum length of a step during path optimization"
543
   WRITE(*,*) "SThresh: Step Threshold to consider that the path is stationary"
544
   WRITE(*,*) "GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is"
545
   WRITE(*,*) "     taken"
546
   WRITE(*,*) ""
547
   WRITE(*,*) "FTan: We moving the path, this gives the proportion of the displacement tangent to the path"
548
   WRITE(*,*) "     that is kept. FTan=1. corresponds to the full displacement, whereas FTan=0. gives a"
549
   WRITE(*,*) "     displacement orthogonal to the path."
550
   WRITE(*,*) "IReparam: The path is not reparameterised at each iteration. This gives the frequency of"
551
   WRITE(*,*) "     reparameterization."
552
   WRITE(*,*) "IReparamT: When the path is not reparameterised at each iteration, this gives the frequency"
553
   WRITE(*,*) "     of reparameterization of the tangents."
554
   WRITE(*,*) ""
555
   WRITE(*,*) "ISpline: By default, a linear interpolation is used to generate the path. This option indicates"
556
   WRITE(*,*) "     the first step where spline interpolation is used."
557
   WRITE(*,*) "BoxTol: Real between 0. and 1. When doing periodic calculations, it might happen that an"
558
   WRITE(*,*) "     atom moves out of the unit cell. Path detects this by comparing the displacement to"
559
   WRITE(*,*) "     boxtol: if an atom moves by more than Boxtol, then it is moved back into the unit cell."
560
   WRITE(*,*) "     Default value: 0.5."
561
   WRITE(*,*) "FrozTol: (Real) This indicates the threshold to determine wether an atom moves between two"
562
   WRITE(*,*) "     images. Default is 1e-4."
563
   WRITE(*,*) ""
564
   WRITE(*,*) "OptGeom: This INTEGER indicates the index of the geometry you want to optimize. If"
565
   WRITE(*,*) "    OptGeom is set, then Opt'n Path performs a geometry optimization instead of a path"
566
   WRITE(*,*) "    interpolation."
567
   WRITE(*,*) "GeomFile: Name of the file to print the geometries and their energy during a geometry opti-"
568
   WRITE(*,*) "    mization. If this variable is not given then nothing is printed."
569
   WRITE(*,*) "AnaFile: Name of the file to print the values of the geometrical parameters that are monitored"
570
   WRITE(*,*) "    if AnaGeom=.TRUE.. Default is PathName.dat"
571
   WRITE(*,*) ""
572
   WRITE(*,*) "GplotFile: Name of the gnuplot file to plot the evolution of the geometrical parameters that"
573
   WRITE(*,*) "    are monitored if AnaGeom=.TRUE.. Default is PathName.gplot"
574
   WRITE(*,*) ""
575
   WRITE(*,*) "*******"
576
   WRITE(*,*) "* Arrays:"
577
   WRITE(*,*) "*******"
578
   WRITE(*,*) ""
579
   WRITE(*,*) "Rcov: Array containing the covalent radii of the first 86 elements. You can modify it using,"
580
   WRITE(*,*) "    rcov(6)=0.8."
581
   WRITE(*,*) "Mass: Array containing the atomic mass of the first 86 elements."
582
   WRITE(*,*) "AtTypes: Name of the different atoms used in a VASP calculations. If not given, Opt'n Path will"
583
   WRITE(*,*) "    read the POTCAR file."
584
   WRITE(*,*) ""
585
   WRITE(*,*) "*******"
586
   WRITE(*,*) "* Flags:"
587
   WRITE(*,*) "*******"
588
   WRITE(*,*) ""
589
   WRITE(*,*) "MW: Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE."
590
   WRITE(*,*) "Renum: Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE."
591
   WRITE(*,*) "    unless for Coord equals CART."
592
   WRITE(*,*) ""
593
   WRITE(*,*) "OptProd: True if one wants to optimize the geometry of the products."
594
   WRITE(*,*) "OptReac: True if one wants to optimize the geometry of the reactants."
595
   WRITE(*,*) "CalcEProd: if TRUE the product energy will be computed. Default is FALSE. Not Compatible"
596
   WRITE(*,*) "    with RunMode=Para."
597
   WRITE(*,*) "CalcEReac: if TRUE the reactants energy will be computed. Default is FALSE. Not Compat-"
598
   WRITE(*,*) "    ible with RunMode=Para."
599
   WRITE(*,*) ""
600
   WRITE(*,*) "PathOnly: TRUE if one wants to generate the initial path, and stops."
601
   WRITE(*,*) "Align: If .FALSE., successive geometries along the path are not aligned on each other before"
602
   WRITE(*,*) "    path interpolation. Default is .TRUE. if there are 4 atoms or more."
603
   WRITE(*,*) "Hinv: if True, then Hessian inversed is used."
604
   WRITE(*,*) "IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations."
605
   WRITE(*,*) ""
606
   WRITE(*,*) "HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of"
607
   WRITE(*,*) "    the path."
608
   WRITE(*,*) "FFrozen: True if one wants to freeze the positions of some atoms. If True, a &frozenlist"
609
   WRITE(*,*) "    namelist containing the list of frozen atoms must be given. If VASP is used, and frozen is"
610
   WRITE(*,*) "    not given here, the program will use the F flags of the input geometry"
611
   WRITE(*,*) "FCart: True if one wants to describe some atoms using cartesian coordinates. *** Only used in"
612
   WRITE(*,*) "    'mixed' calculations. *** If True, a &cartlist namelist containing the list of cart atoms"
613
   WRITE(*,*) "    must be given. By default, only frozen atoms are described in cartesian coordinates."
614
   WRITE(*,*) ""
615
   WRITE(*,*) "Autocart: True if you want to let the program choosing the cartesian atoms."
616
   WRITE(*,*) "VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now."
617
   WRITE(*,*) ""
618
   WRITE(*,*) "WriteVASP: TRUE if you want to print the images coordinates in POSCAR files. See also"
619
   WRITE(*,*) "      the POSCAR option. This can be used only if prog or input=VASP."
620
   WRITE(*,*) "AnaGeom: If TRUE, Opt'n Path will create a file .dat for geometries analysis. If True, "
621
   WRITE(*,*) "Opt'n Path will look for the AnaList namelist after the Path Namelist."
622
   WRITE(*,*) "DynMaxStep: if TRUE, the maximum allowed step is updated at each step, for each geometry."
623
   WRITE(*,*) "      If energy goes up, Smax = Smax*0.8, if not Smax = Smax*1.2. It is ensured that the"
624
   WRITE(*,*) "      dynamical Smax is within [0.5*SMax_0 ,2*Smax_0 ]."
625
   WRITE(*,*) ""
626
   WRITE(*,*) "*******"
627
   WRITE(*,*) "* Additional namelists:"
628
   WRITE(*,*) "*******"
629
   WRITE(*,*) ""
630
   WRITE(*,*) "&cartlist list= ... &end This gives the list of atoms that are described using cartesian coor-"
631
   WRITE(*,*) "      dinates. Read only if FCart=.TRUE.. To indicate an atom range, from 1 to 5 for example,"
632
   WRITE(*,*) "      one can put 1 -5 in the list. For example:"
633
   WRITE(*,*) "      &cartlist list = 1 2 6 12 -20 &end"
634
   WRITE(*,*) "      will described atoms 1, 2, 6, 12, 13, 14, 15, 16, 17, 18, 19 and 20 in cartesian."
635
   WRITE(*,*) "&Frozenlist list= ... &end This gives the list of atoms that are frozen during optimization."
636
   WRITE(*,*) "      Read only if FFrozen=.TRUE.. To indicate an atom range, from 1 to 5 for example, one"
637
   WRITE(*,*) "      can put 1 -5 in the list."
638
   WRITE(*,*) ""
639
   WRITE(*,*) "&Analist nb= ... &end list of variables for geometry analysis. If present and if Ana-"
640
   WRITE(*,*) "      Geom=T then Opt'n Path will read it and print the values of the variable in a .dat file If"
641
   WRITE(*,*) "      AnaGeom is T but Analist is not given, then Path.dat just contains the energy. Analist"
642
   WRITE(*,*) "      contains the number of variables to monitor: Nb, and is followed by the description of the"
643
   WRITE(*,*) "      variables among: b(ond) At1 At2 a(ngle) At1 At2 At3 d(ihedral) At1 At2 At3 At4 c NbAt"
644
   WRITE(*,*) "      At1 At2 At3 At4 At5... to create a center of mass. The centers of mass are added at the"
645
   WRITE(*,*) "      end of the real atoms of the system."
646
!!!!!!!!!! end of included file
422 647
        WRITE(*,*) ""
423
        WRITE(*,*) ""
424
        WRITE(*,*) "Other options"
425
        WRITE(*,*) "Input: string that indicates the type of the input geometries."
426
        WRITE(*,*) "Accepted values are: Cart (or Xmol or Xyz) or Vasp"
427
        WRITE(*,*) "Prog: string that indicates the program that will be used for energy and gradient calculations."
428
        WRITE(*,*) "      Accepted values are: Gaussian, Vasp, Mopac, TurboMole, Siesta, Test or Ext"
429
        WRITE(*,*) "   *   In case of a Gaussian or Mopac calculations, input must be set to Cart."
430
        WRITE(*,*) "      One example of a gaussian/mopac input should be added at the end of the"
431
        WRITE(*,*) "     input file. See example file Test_G03.path or Test_Mopac.path"
432
        WRITE(*,*) "   *   In the case of a VASP calculation, if input is set to Cart, then"
433
        WRITE(*,*) "     the preamble of a VASP calculation should be added at the end of"
434
        WRITE(*,*) "     the input file. See example file Test_VASP_cart.path"
435
        WRITE(*,*) "       In the case of a VASP calculation, one should also give value of the "
436
        WRITE(*,*) "    Runmode variable"
437
        WRITE(*,*) "   *   In the case of a SIESTA calculation, an example of a Siesta input file"
438
        WRITE(*,*) "     should be added at the end of the input file. See Test_Siesta.path"
439
        WRITE(*,*) "Runmode: This indicates wether one should use VASP routine to calculate the energy"
440
        WRITE(*,*) "       and gradient of the whole path or not. If one wants to use VASP,"
441
        WRITE(*,*) "       Runmode must be set to PARA."
442
        WRITE(*,*) "PathName: Prefix used to save the path. Default is Path"
443
        WRITE(*,*) "Poscar: string that will be used as the prefix for the different "
444
        WRITE(*,*) "        POSCAR files in a VASP calculations. Usefull only if PathOnly=.TRUE.,"
445
        WRITE(*,*) "        not used for internal calculations."
446
        WRITE(*,*) " CalcName: Prefix for the files used for the energy and gradient calculations"
447
        WRITE(*,*) " ISuffix: Suffix for the input file."
448
        WRITE(*,*) " OSuffix: suffix for the output file."
449
        WRITE(*,*) "IGeomRef: Index of the geometry used to construct the internal coordinates."
450
        WRITE(*,*) "      Valid only for Coord=Zmat, Hybrid or Mixed"
451
        WRITE(*,*) "Fact: REAL used to define if two atoms are linked."
452
        WRITE(*,*) "      If d(A,B)<=fact*(rcov(A)+rcov(B)), then A and B are considered Linked."
453
        WRITE(*,*) "debugFile: Name of the file that indicates which subroutine should print debug info."
454
        WRITE(*,*) "Coord: System of coordinates to use. Possible choices are:"
455
        WRITE(*,*) "       - CART (or Xyz): works in cartesian"
456
        WRITE(*,*) "       - Zmat: works in internal coordinates (Zmat)"
457
        WRITE(*,*) "       - Mixed: frozen atoms, as well as atoms defined by the "
458
        WRITE(*,*) "       'cart' array(see below) are describe in CARTESIAN, whereas the"
459
        WRITE(*,*) "       others are described in Zmat" 
460
        WRITE(*,*) "       - Baker: use of Baker coordinates, also called delocalized internal coordinates"
461
        WRITE(*,*) "       - Hybrid: geometries are described in zmat, but the gradient are used in cartesian"
462
        WRITE(*,*) "Step_method: method to compute the step for optimizing a geometry; choices are:" 
463
        WRITE(*,*) "       - RFO: Rational function optimization"
464
        WRITE(*,*) "       - GDIIS: Geometry optimization using direct inversion in the iterative supspace"
465
!        WRITE(*,*) " HesUpd: Deprecated. Use Hupdate."
466
        WRITE(*,*) " HUpdate: method to update the hessian. By default, it is Murtagh-Sargent"
467
        WRITE(*,*) "      Except for geometry optimization where it is BFGS."
468
        WRITE(*,*) " GeomFile: Name of the file to print the geometries and their energy"
469
        WRITE(*,*) "      during a geometry optimization. If this variable is not given"
470
        WRITE(*,*) "      then nothing is printed."
471
        WRITE(*,*) "MaxCyc: maximum number of iterations for the path optimization"
472
        WRITE(*,*) "Smax: Maximum length of a step during path optimization"
473
        WRITE(*,*) "SThresh: Step Threshold to consider that the path is stationary"
474
        WRITE(*,*) "GThresh: Gradient Threshold to consider that the path is stationary, only orthogonal part is taken"
475
        WRITE(*,*) "FTan: When moving the path, this gives the proportion of the displacement tangent to the path"
476
        WRITE(*,*) "      that is kept. FTan=1. corresponds to the full displacement, "
477
        WRITE(*,*) "      whereas FTan=0. gives a displacement orthogonal to the path. Default: Ftan=0."
478
        WRITE(*,*) "IReparam: The path is not reparameterised at each iteration. This gives the frequency of reparameterization."
479
        WRITE(*,*) "ISpline: By default, a linear interpolation is used to generate the path."
480
        WRITE(*,*) "         This option indicates the first step where spline interpolation is used."
481
        WRITE(*,*) "Boxtol: Real between 0. and 1. When doing periodic calculations, "
482
        WRITE(*,*) "        it might happen that an atom moves out of the unit cell."
483
        WRITE(*,*) "        Path detects this by comparing the displacement to boxtol:"
484
        WRITE(*,*) "        if an atom moves by more than Boxtol, then it is moved back into the unit cell. Default value: 0.5"
485
        WRITE(*,*) ""
486
        WRITE(*,*) "Arrays:"
487
        WRITE(*,*) "Rcov: Array containing the covalent radii of the first 80 elements."
488
        WRITE(*,*) "      You can modify it using, rcov(6)=0.8."
489
        WRITE(*,*) "Mass: Array containing the atomic mass of the first 80 elements."
490
        WRITE(*,*) "AtTypes: Name of the different atoms used in a VASP calculations."
491
        WRITe(*,*) "If not given, Path will read the POTCAR file."
492
        WRITE(*,*) ""
493
        WRITE(*,*) "Flags:"
494
        WRITE(*,*) "MW:  Flag. True if one wants to work in Mass Weighted coordinates. Default=.TRUE."
495
        WRITE(*,*) "Renum: Flag. True if one wants to reoder the atoms in the initial order. default is .TRUE. most of the time."
496
        WRITE(*,*) "OptProd: True if one wants to optimize the geometry of the products."
497
        WRITE(*,*) "OptReac: True if one wants to optimize the geometry of the reactants."
498
        WRITE(*,*) "CalcEReac: if TRUE the reactants energy will be computed. Default is FALSE. Not Compatible with RunMode=Para"
499
        WRITE(*,*) "CalcEProd: if TRUE the products energy will be computed. Default is FALSE. Not compatible with RunMode=Para"
500
        WRITE(*,*) "PathOnly:TRUE if one wants to generate the initial path, and stops." 
501
        WRITE(*,*) "Hinv: if True, then Hessian inversed is used."
502
        WRITE(*,*) "IniHup: if True, then Hessian inverse is extrapolated using the initial path calculations."
503
        WRITE(*,*) "HupNeighbour: if True, then Hessian inverse is extrapolated using the neighbouring points of the path."
504
        WRITE(*,*) "FFrozen: True if one wants to freeze the positions of some atoms." 
505
        WRITE(*,*) "         If True, a &frozenlist namelist containing the list of frozen atoms must be given."
506
        WRITE(*,*) "          If VASP is used, and frozen is not given"
507
        WRITE(*,*) " here, the program will use the F flags of the input geometry"
508
        WRITE(*,*) "FCart:  True if one wants to describe some atoms using cartesian coordinates. "
509
        WRITE(*,*) "        *** Only used in 'mixed' calculations. ***"
510
        WRITE(*,*) "      If True, a &cartlist namelist containing the list of cart atoms must be given."
511
        WRITE(*,*) "      By default, only frozen atoms are described in cartesian coordinates."
512
        WRITE(*,*) ""
513
        WRITE(*,*) "AnaGEom: If TRUE, Opt'n Path will create a file .dat for geometries analysis."
514
        WRITE(*,*) "        If True, Opt'n Path will look for the AnaList namelist after the Path Namelist."
515
        WRITE(*,*) "AnaList: list of variables for geometry analysis. If present and if AnaGeom=T then"
516
        WRITE(*,*) "     Opt'n Path will read it and print the values of the variable in a .dat file"
517
        WRITE(*,*) "    If AnaGeom is T but Analist is not given, then Path.dat just contains the energy." 
518
        WRITE(*,*) "Analist contains the number of variables to monitor: Nb, and is followed by the description"
519
        WRITE(*,*) "of the variables among:"
520
        WRITE(*,*) "b(ond) At1 At2"
521
        WRITE(*,*) "a(ngle) At1 At2 At3"
522
        WRITE(*,*) "d(ihedral) At1 At2 At3 At4"
523
        WRITE(*,*) "c NbAt At1 At2 At3 At4 At5... to create a center of mass. The centers of mass are added"
524
        WRITE(*,*) "at the end of the real atoms of the system"
525
        WRITE(*,*) ""
526
        WRITE(*,*) "DynMaxStep: if TRUE, the maximum allowed step is updated at each step, for each geometry."
527
        WRITE(*,*) "        If energy goes up, Smax=Smax*0.8, if not Smax=Smax*1.2. "
528
        WRITE(*,*) "       It is ensured that the dynamical Smax is within [0.5*SMax_0,2*Smax_0]"
529
        WRITE(*,*) "Autocart: True if you want to let the program choosing the cartesian atoms."
530
        WRITE(*,*) "VMD: TRUE if you want to use VMD to look at the Path. Used only for VASP for now"
531
        WRITE(*,*) "WriteVASP: TRUE if you want to print the images coordinates in POSCAR files."
532
        WRITE(*,*) "See also the POSCAR option. This can be used only if prog or input=VASP."
533
        WRITE(*,*) ""
534 648
        STOP
535 649
     END IF
536 650

  
......
1223 1337

  
1224 1338
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1225 1339
  !
1226
  ! For Debugging purposes
1227 1340
  !
1228 1341
  ! OptGeom is the index of the geometry which is to be optimized.
1229 1342
  IF (Optgeom.GT.0) THEN
......
1252 1365
     Call Opt_geom(OptGeom,Nat,Ncoord,Coord,GeomTmp,E,Flag_Opt_Geom,Step_method)
1253 1366

  
1254 1367
     WRITE(Line,"('Geometry ',I3,' optimized')") Optgeom
1255
     WRITE(*,*) "Before PrintGeom, L1059, Path.f90"
1368
     if (debug) WRITE(*,*) "Before PrintGeom, L1059, Path.f90"
1256 1369
     Call PrintGeom(Line,Nat,NCoord,GeomTmp,Coord,IoOut,Atome,Order,OrderInv,IndZmat)
1257 1370
     STOP
1258 1371
  END IF ! IF (Optgeom.GT.0) THEN
......
1262 1375
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
1263 1376

  
1264 1377
  IF (PathOnly) THEN
1265
     WRITE(*,*) "PathOnly=.T. , Stop here"
1378
     Call Header("PathOnly=.T. , Stop here")
1266 1379
     Call Write_path(-1)
1267 1380
     if ((prog.EQ.'VASP').OR.WriteVasp) Call Write_vasp(poscar)
1268 1381
     STOP

Formats disponibles : Unified diff