Line data Source code
1 : !--------------------------------------------------------------------------------
2 : ! Copyright (c) 2016 Peter Grünberg Institut, Forschungszentrum Jülich, Germany
3 : ! This file is part of FLEUR and available as free software under the conditions
4 : ! of the MIT license as expressed in the LICENSE file in more detail.
5 : !--------------------------------------------------------------------------------
6 : MODULE m_fleur_help
7 : IMPLICIT NONE
8 : PRIVATE
9 : PUBLIC fleur_help
10 : CONTAINS
11 80 : SUBROUTINE fleur_help()
12 : USE m_compile_descr
13 : USE m_constants
14 : USE m_juDFT
15 : USE m_check_arguments
16 : IMPLICIT NONE
17 :
18 80 : CHARACTER(:), ALLOCATABLE:: infostring
19 :
20 80 : PRINT *," Welcome to FLEUR (www.flapw.de) "
21 80 : PRINT *, version_const_MaX
22 80 : CALL add_fleur_arguments()
23 80 : IF (.NOT.check_arguments()) CALL judft_warn("Invalid command line arguments",hint="Use -h option to see valid choices")
24 :
25 80 : IF (.NOT. judft_was_argument("-h")) RETURN
26 :
27 : !now print version info and help on command line arguments:
28 : CALL get_compile_desc_string(infostring)
29 0 : WRITE(*,'(a)') infostring
30 0 : WRITE(*,'(a)')
31 0 : WRITE(*,'(a)')"------------------------------------------------------"
32 0 : WRITE(*,'(a)')"Usage info:"
33 0 : WRITE(*,'(a)')"The following command line options are known:"
34 0 : WRITE(*,'(a)')""
35 0 : WRITE(*,'(a)')"Control the input:"
36 0 : CALL print_argument("-xmlXPath")
37 0 : CALL print_argument("-dropXMLSchema")
38 0 : WRITE(*,'(a)')""
39 0 : WRITE(*,'(a)')"Output options:"
40 0 : CALL print_argument("-no_out")
41 0 : CALL print_argument("-minimalOutput")
42 0 : CALL print_argument("-genEnpara")
43 0 : CALL print_argument("-h")
44 0 : call print_argument("-version")
45 0 : WRITE(*,'(a)')""
46 0 : WRITE(*,'(a)')"Control FLEUR job:"
47 0 : CALL print_argument("-check")
48 0 : CALL print_argument("-info")
49 0 : CALL print_argument("-wtime")
50 0 : CALL print_argument("-j")
51 0 : CALL print_argument("-f")
52 0 : CALL print_argument("-min_pe_per_kpt")
53 0 : CALL print_argument("-pe_per_kpt")
54 0 : CALL print_argument("-add_name")
55 0 : CALL print_argument("-fft")
56 0 : CALL print_argument("-diag")
57 0 : CALL print_argument("-eig")
58 0 : CALL print_argument("-disable_progress_thread")
59 0 : WRITE(*,'(a)')""
60 0 : WRITE(*,'(a)')"Options useful for debugging:"
61 0 : CALL print_argument("-warn_only")
62 0 : CALL print_argument("-trace")
63 0 : CALL print_argument("-debugtime")
64 0 : CALL print_argument("-all_times")
65 : #ifdef CPP_HDF
66 0 : WRITE(*,'(a)')""
67 0 : WRITE(*,'(a)')"HDF density file relevant options:"
68 :
69 0 : CALL print_argument("-no_cdn_hdf")
70 0 : CALL print_argument("-last_extra")
71 0 : CALL print_argument("-sd")
72 0 : CALL print_argument("-delden")
73 0 : CALL print_argument("-storeSF")
74 : #endif
75 0 : WRITE (*,'(a)') "Options for privacy sensitive users"
76 0 : CALL print_argument("-no_send")
77 :
78 0 : WRITE(*,'(a)')""
79 0 : WRITE(*,'(a)')"Please check the documentation on www.flapw.de for more details."
80 :
81 0 : CALL juDFT_end("",l_endXML=.FALSE.) !No message so do a not print more on exit
82 0 : END SUBROUTINE fleur_help
83 :
84 80 : SUBROUTINE add_fleur_arguments()
85 : USE m_check_arguments
86 :
87 80 : CALL new_argument(1,"-xmlXPath","modify the xml-xpath of the inp.xml file","")
88 80 : CALL new_argument(0,"-dropXMLSchema","Write out the default XML schema files","")
89 : !Control the job
90 80 : CALL new_argument(0,"-check","run in check mode, i.e. stop after init","")
91 80 : CALL new_argument(0,"-info","Print out information on recommended parallelization and available charge densities","")
92 80 : CALL new_argument(2,"-wtime","run for # minutes (used to estimate if another iteration is started)","")
93 80 : call new_argument(1,"-blocksize","blocksize used for 2d distributed matrixes","")
94 80 : CALL new_argument(1,"-j","Distribute MPI ranks to run subjobs (Format PE:DIR meaning run with PE in directory DIR)","")
95 80 : CALL new_argument(1,"-f","Obtain info on subjobs from file","")
96 80 : CALL new_argument(2,"-min_pe_per_kpt","Try to use at least specified number of PE in eigenvalue parallelization","")
97 80 : CALL new_argument(2,"-pe_per_kpt","Use exactly the specified number of PE for eigenvalue parallelization","")
98 80 : CALL new_argument(1,"-add_name","file descriptor that will be put before the output file names","")
99 : CALL new_argument(1,"-fft","library used for Fast Fourier Transformations","inbuilt"&
100 : #ifdef CPP_FFTW
101 : //",fftw"&
102 : #endif
103 : #ifdef CPP_FFT_MKL
104 : //",mkl"&
105 : #endif
106 : #ifdef CPP_SPFFT
107 : //",spfft"&
108 : #endif
109 80 : )
110 : CALL new_argument(1,"-diag","Choose method for diagonalization","lapack,debugout,lapack_singlePrec,stop,dummy"&
111 : #ifdef CPP_SCALAPACK
112 : //",scalapack"&
113 : #endif
114 : #ifdef CPP_ELPA_ONENODE
115 : //",elpa_1node"&
116 : #endif
117 : #ifdef CPP_ELSI
118 : //",elsielpa"&
119 : #endif
120 : #ifdef CPP_ELSI
121 : //",elsichase"&
122 : #endif
123 : #ifdef CPP_ELPA
124 : //",elpa"&
125 : #endif
126 : #ifdef CPP_CHASE
127 : //",chase"&
128 : #endif
129 : #ifdef CPP_MAGMA
130 : //",magma"&
131 : #endif
132 : #ifdef CPP_CUSOLVER
133 : //",cusolver"&
134 : #endif
135 80 : )
136 : CALL new_argument(1,"-eig","Method for storing the eigenvectors","mem,da"&
137 : #ifdef CPP_MPI
138 : //",mpi"&
139 : #endif
140 : #ifdef CPP_HDF
141 : //",hdf"&
142 : #endif
143 80 : )
144 80 : CALL new_argument(0,"-serial_diag","Use serial diagonalization in parallel code","")
145 80 : CALL new_argument(0,"-disable_progress_thread","Do not use progress_thread","")
146 : !Debugging
147 80 : CALL new_argument(0,"-warn_only","Continue execution after a warning message","")
148 80 : CALL new_argument(0,"-trace","Try to generate a stacktrace in case of an error","")
149 80 : CALL new_argument(0,"-debugtime","Write the start/stop of all timers to the console","")
150 80 : CALL new_argument(0,"-all_times","Write json files of timing for all PE, not only for PE=0","")
151 : !Output
152 80 : CALL new_argument(0,"-mix_io","Do not store mixing history in memory but do IO in each iteration","")
153 80 : CALL new_argument(0,"-no_out","Do not open the 'out' file but write to stdout","")
154 80 : CALL new_argument(0,"-minimalOutput","Reduce the amount of output in the out.xml file","")
155 80 : CALL new_argument(0,"-genEnpara","Generate an 'enpara' file for the energy parameters","")
156 80 : CALL new_argument(0,"-h","Print this message","")
157 80 : CALL new_argument(0,"-version","Show important version information about the fleur executable","")
158 80 : CALL new_argument(0,"-no_send","Do not send usage data","")
159 : !HDF density
160 80 : CALL new_argument(0,"-no_cdn_hdf","Disable HDF charge density mode (activated by default if HDF5 is available)","")
161 80 : CALL new_argument(0,"-last_extra","Generate an additional file cdn_last.hdf that contains only the last density","")
162 80 : CALL new_argument(2,"-sd","use starting density N, where N is the index of the density according to -info","")
163 80 : CALL new_argument(1,"-delden","delete densities (either an index N, a range N-M or the keyword 'allbutlast' should be given)","")
164 80 : CALL new_argument(0,"-storeSF","Store the stepfunction in the charge density file to avoid its recalculation when restarting Fleur.","")
165 80 : END SUBROUTINE add_fleur_arguments
166 : END MODULE m_fleur_help
|