Line data Source code
1 : !--------------------------------------------------------------------------------------------------!
2 : ! CP2K: A general program to perform molecular dynamics simulations !
3 : ! Copyright 2000-2024 CP2K developers group <https://cp2k.org> !
4 : ! !
5 : ! SPDX-License-Identifier: GPL-2.0-or-later !
6 : !--------------------------------------------------------------------------------------------------!
7 :
8 : ! **************************************************************************************************
9 : !> \par History
10 : !> none
11 : !> \author APSI & CJM & JGH
12 : ! **************************************************************************************************
13 : MODULE header
14 : USE cp2k_info, ONLY: r_cwd,&
15 : r_datx,&
16 : r_host_name,&
17 : r_pid,&
18 : r_user_name
19 : USE kinds, ONLY: default_path_length
20 : #include "./base/base_uses.f90"
21 :
22 : IMPLICIT NONE
23 :
24 : PRIVATE
25 : PUBLIC :: cp2k_header, cp2k_footer, vib_header
26 : PUBLIC :: fist_header, se_header, dftb_header, qs_header, tddfpt_header
27 : PUBLIC :: qmmm_header, atom_header, atom_footer, band_header, xtb_header
28 : PUBLIC :: tmc_header, tmc_ana_header
29 : PUBLIC :: sirius_header
30 : PUBLIC :: tddfpt_soc_header
31 :
32 : CONTAINS
33 :
34 : ! **************************************************************************************************
35 : !> \brief ...
36 : !> \param iw ...
37 : !> \param wdir ...
38 : ! **************************************************************************************************
39 9127 : SUBROUTINE cp2k_header(iw, wdir)
40 : INTEGER, INTENT(IN) :: iw
41 : CHARACTER(LEN=default_path_length), OPTIONAL :: wdir
42 :
43 : CHARACTER(LEN=default_path_length) :: cwd
44 : INTEGER :: l
45 :
46 9127 : IF (iw < 0) RETURN
47 4667 : cwd = r_cwd
48 4667 : IF (PRESENT(wdir)) cwd = wdir
49 : WRITE (UNIT=iw, &
50 : FMT="(/,A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
51 4667 : " **** **** ****** ** PROGRAM STARTED AT ", ADJUSTR(r_datx), &
52 4667 : " ***** ** *** *** ** PROGRAM STARTED ON ", ADJUSTR(r_host_name(1:30)), &
53 4667 : " ** **** ****** PROGRAM STARTED BY ", ADJUSTR(r_user_name(1:30)), &
54 9334 : " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
55 : WRITE (UNIT=iw, FMT="(A,T44,A37)") &
56 4667 : " **** ** ******* ** PROGRAM STARTED IN ", ADJUSTR(cwd(1:37))
57 14004 : DO l = 38, LEN_TRIM(cwd), 37
58 14004 : WRITE (UNIT=iw, FMT="(T44,A)") cwd(l:MIN(LEN_TRIM(cwd), l + 36))
59 : END DO
60 :
61 : END SUBROUTINE cp2k_header
62 :
63 : ! **************************************************************************************************
64 : !> \brief ...
65 : !> \param iw ...
66 : !> \param wdir ...
67 : ! **************************************************************************************************
68 4701 : SUBROUTINE cp2k_footer(iw, wdir)
69 : INTEGER, INTENT(IN) :: iw
70 : CHARACTER(LEN=default_path_length), OPTIONAL :: wdir
71 :
72 : CHARACTER(LEN=default_path_length) :: cwd
73 : INTEGER :: l
74 :
75 4701 : IF (iw < 0) RETURN
76 4700 : cwd = r_cwd
77 4700 : IF (PRESENT(wdir)) cwd = wdir
78 : WRITE (UNIT=iw, &
79 : FMT="(A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
80 4700 : " **** **** ****** ** PROGRAM ENDED AT ", ADJUSTR(r_datx), &
81 4700 : " ***** ** *** *** ** PROGRAM RAN ON ", ADJUSTR(r_host_name(1:30)), &
82 4700 : " ** **** ****** PROGRAM RAN BY ", ADJUSTR(r_user_name(1:30)), &
83 9400 : " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
84 : WRITE (UNIT=iw, FMT="(A,T44,A37)") &
85 4700 : " **** ** ******* ** PROGRAM STOPPED IN ", ADJUSTR(cwd(1:37))
86 14103 : DO l = 38, LEN_TRIM(cwd), 37
87 14103 : WRITE (UNIT=iw, FMT="(T44,A)") cwd(l:MIN(LEN_TRIM(cwd), l + 36))
88 : END DO
89 : END SUBROUTINE cp2k_footer
90 :
91 : ! **************************************************************************************************
92 : !> \brief ...
93 : !> \param iw ...
94 : ! **************************************************************************************************
95 394 : SUBROUTINE qmmm_header(iw)
96 : INTEGER, INTENT(in) :: iw
97 :
98 394 : IF (iw < 0) RETURN
99 : WRITE (iw, '(/,(T2,A79))') &
100 199 : "*******************************************************************************", &
101 199 : "*******************************************************************************", &
102 199 : "** **", &
103 199 : "** ####### ## ## ## ## ## ## **", &
104 199 : "** ## ## ### ### ### ### ### ### **", &
105 199 : "** ## ## #### #### #### #### #### #### **", &
106 199 : "** ## ## ## ### ## ## ### ## ## ### ## **", &
107 199 : "** ## ## ## ## ## ## ## ## ## **", &
108 199 : "** ## ## ## ## ## ## ## ## T.Laino and F.Mohamed **", &
109 199 : "** ##### ## ## ## ## ## ## ## 2005 - 2015 **", &
110 199 : "** **", &
111 199 : "** Calculation Started.. **", &
112 199 : "*******************************************************************************", &
113 398 : "*******************************************************************************"
114 :
115 : END SUBROUTINE qmmm_header
116 :
117 : ! **************************************************************************************************
118 : !> \brief ...
119 : !> \param iw ...
120 : ! **************************************************************************************************
121 1066 : SUBROUTINE tddfpt_header(iw)
122 : INTEGER, INTENT(in) :: iw
123 :
124 1066 : IF (iw < 0) RETURN
125 : WRITE (iw, '(/,(T2,A79))') &
126 533 : "*******************************************************************************", &
127 533 : "** **", &
128 533 : "** ######## ####### ####### ######## ####### ######## **", &
129 533 : "** ## ## ## ## ## ## ## ## ## **", &
130 533 : "** ## ## ## ## ## ###### ####### ## **", &
131 533 : "** ## ## ## ## ## ## ## ## **", &
132 533 : "** ## ####### ####### ## ## ## **", &
133 533 : "** **", &
134 1066 : "*******************************************************************************"
135 :
136 : END SUBROUTINE tddfpt_header
137 :
138 : ! **************************************************************************************************
139 : !> \brief ...
140 : !> \param iw ...
141 : ! **************************************************************************************************
142 8 : SUBROUTINE tddfpt_soc_header(iw)
143 : INTEGER, INTENT(in) :: iw
144 :
145 8 : IF (iw < 0) RETURN
146 : WRITE (iw, '(/,(T2,A79))') &
147 4 : "*******************************************************************************", &
148 4 : "** **", &
149 4 : "** ####### ####### ####### **", &
150 4 : "** # ## ## ## ## **", &
151 4 : "** ### ###### ## ## ## **", &
152 4 : "** # ## ## ## ## **", &
153 4 : "** ###### ####### ####### **", &
154 4 : "** Based on the xas module from Augustin Bussy **", &
155 8 : "*******************************************************************************"
156 :
157 : END SUBROUTINE tddfpt_soc_header
158 :
159 : ! **************************************************************************************************
160 : !> \brief ...
161 : !> \param iw ...
162 : ! **************************************************************************************************
163 2639 : SUBROUTINE fist_header(iw)
164 : INTEGER, INTENT(in) :: iw
165 :
166 2639 : IF (iw > 0) THEN
167 1433 : WRITE (iw, '( / )')
168 : WRITE (iw, '( 14(20x,a,/) )') &
169 1433 : ' ************* ******** *********** ', &
170 1433 : ' ************* ********************** ', &
171 1433 : ' **** **** **** *********** ', &
172 1433 : ' ******** **** ******* **** ', &
173 1433 : ' ******* **** ******* **** ', &
174 1433 : ' **** **** **** **** ', &
175 1433 : ' **** **** ********** **** ', &
176 1433 : ' **** **** ******** **** ', &
177 1433 : ' FRONTIERS IN SIMULATION TECHNOLOGY ', &
178 1433 : ' ', &
179 1433 : ' C.J. Mundy, S. Balasubramanian, ', &
180 1433 : ' Ken Bagchi, J. Hutter, Ari Seitsonen ', &
181 1433 : ' IFW Kuo, T. Laino, J. VandeVondele ', &
182 1433 : ' Version 1.0 ', &
183 2866 : ' '
184 : END IF
185 :
186 2639 : END SUBROUTINE fist_header
187 :
188 : ! **************************************************************************************************
189 : !> \brief ...
190 : !> \param iw ...
191 : ! **************************************************************************************************
192 222 : SUBROUTINE dftb_header(iw)
193 : INTEGER, INTENT(in) :: iw
194 :
195 222 : IF (iw < 0) RETURN
196 111 : WRITE (iw, '( / )')
197 : WRITE (iw, '( 11(12x,a,/) )') &
198 111 : ' ##### ##### # ###### ####### ####### ###### ', &
199 111 : ' # # # # # # # # # # # ', &
200 111 : ' # # # # # # # # # # ', &
201 111 : ' # # ##### # # # ##### # ###### ', &
202 111 : ' # # # # # # # # # # # ', &
203 111 : ' # # # # # # # # # # # ', &
204 111 : ' #### # ##### # ###### # # ###### ', &
205 111 : ' ', &
206 111 : ' Version 0.2 ', &
207 111 : ' J. Hutter and T. Heine ', &
208 222 : ' '
209 : END SUBROUTINE dftb_header
210 :
211 : ! **************************************************************************************************
212 : !> \brief ...
213 : !> \param iw ...
214 : !> \param gfn_type ...
215 : ! **************************************************************************************************
216 284 : SUBROUTINE xtb_header(iw, gfn_type)
217 : INTEGER, INTENT(in) :: iw, gfn_type
218 :
219 284 : IF (iw < 0) RETURN
220 147 : WRITE (iw, '( / )')
221 : WRITE (iw, '( 7(16x,a,/) )') &
222 147 : ' ##### ##### # ####### ###### ', &
223 147 : ' # # # # # # # # ', &
224 147 : ' # # # # ## ## # # # ', &
225 147 : ' # # ##### # ## ## # ###### ', &
226 147 : ' # # # # # ### # # # ', &
227 147 : ' # # # # # ## ## # # # ', &
228 294 : ' #### # ##### # ## ## # ###### '
229 :
230 164 : SELECT CASE (gfn_type)
231 : CASE (0)
232 17 : WRITE (iw, '( 34x,a )') ' GFN0-xTB '
233 : CASE (1)
234 130 : WRITE (iw, '( 34x,a )') ' GFN1-xTB '
235 : CASE (2)
236 147 : WRITE (iw, '( 34x,a )') ' GFN2-xTB '
237 : CASE DEFAULT
238 : END SELECT
239 :
240 : WRITE (iw, '( 2(16x,a,/) )') &
241 147 : ' Version 1.1 ', &
242 294 : ' J. Hutter and A. Hehn '
243 :
244 : END SUBROUTINE xtb_header
245 : ! **************************************************************************************************
246 : !> \brief ...
247 : !> \param iw ...
248 : ! **************************************************************************************************
249 998 : SUBROUTINE se_header(iw)
250 : INTEGER, INTENT(in) :: iw
251 :
252 998 : IF (iw < 0) RETURN
253 500 : WRITE (iw, '( / )')
254 : WRITE (iw, '( 12(12x,a,/) )') &
255 500 : ' ##### ##### # # # ###### ###### ##### ', &
256 500 : ' # # # # # ## # # # # # # # ', &
257 500 : ' # # # # # # # # # # # # # ', &
258 500 : ' # # ##### # # # # # # # # # # ', &
259 500 : ' # # # # # # # # # # # # # # ', &
260 500 : ' # # # # # # ## # # # # # # ', &
261 500 : ' #### # ##### # # # ###### ###### ##### ', &
262 500 : ' ', &
263 500 : ' T. Laino and J. Hutter ', &
264 500 : ' ', &
265 1000 : ' 2008 - 2015 '
266 :
267 : END SUBROUTINE se_header
268 :
269 : ! **************************************************************************************************
270 : !> \brief ...
271 : !> \param iw ...
272 : ! **************************************************************************************************
273 5180 : SUBROUTINE qs_header(iw)
274 : INTEGER, INTENT(IN) :: iw
275 :
276 5180 : IF (iw < 0) RETURN
277 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
278 2615 : "*******************************************************************************", &
279 2615 : "*******************************************************************************", &
280 2615 : "** **", &
281 2615 : "** ##### ## ## **", &
282 2615 : "** ## ## ## ## ## **", &
283 2615 : "** ## ## ## ###### **", &
284 2615 : "** ## ## ## ## ## ##### ## ## #### ## ##### ##### **", &
285 2615 : "** ## ## ## ## ## ## ## ## ## ## ## ## ## ## **", &
286 2615 : "** ## ## ## ## ## ## ## #### ### ## ###### ###### **", &
287 2615 : "** ## ### ## ## ## ## ## ## ## ## ## ## **", &
288 2615 : "** ####### ##### ## ##### ## ## #### ## ##### ## **", &
289 2615 : "** ## ## **", &
290 2615 : "** **", &
291 2615 : "** ... make the atoms dance **", &
292 2615 : "** **", &
293 2615 : "** Copyright (C) by CP2K developers group (2000-2024) **", &
294 2615 : "** J. Chem. Phys. 152, 194103 (2020) **", &
295 2615 : "** **", &
296 5230 : "*******************************************************************************"
297 : END SUBROUTINE qs_header
298 :
299 : ! **************************************************************************************************
300 : !> \brief ...
301 : !> \param iw ...
302 : ! **************************************************************************************************
303 360 : SUBROUTINE atom_header(iw)
304 : INTEGER, INTENT(IN) :: iw
305 :
306 360 : IF (iw < 0) RETURN
307 180 : WRITE (iw, '( / )')
308 : WRITE (iw, '( 14(25x,a,/) )') &
309 180 : ' **** ****** **** **** ', &
310 180 : ' ** ** ****** ** ** ****** ', &
311 180 : ' ****** ** ** ** ** ** ', &
312 180 : ' ** ** ** **** ** ** ', &
313 180 : ' ', &
314 180 : ' University of Zurich ', &
315 180 : ' 2009 - 2015 ', &
316 180 : ' ', &
317 180 : ' Version 0.0 ', &
318 360 : ' '
319 : END SUBROUTINE atom_header
320 :
321 : ! **************************************************************************************************
322 : !> \brief ...
323 : !> \param iw ...
324 : ! **************************************************************************************************
325 360 : SUBROUTINE atom_footer(iw)
326 : INTEGER, INTENT(IN) :: iw
327 :
328 360 : IF (iw < 0) RETURN
329 180 : WRITE (iw, '( / )')
330 : WRITE (iw, '( 14(25x,a,/) )') &
331 180 : ' NORMAL TERMINATION OF ', &
332 180 : ' ', &
333 180 : ' **** ****** **** **** ', &
334 180 : ' ** ** ****** ** ** ****** ', &
335 180 : ' ****** ** ** ** ** ** ', &
336 360 : ' ** ** ** **** ** ** '
337 :
338 : END SUBROUTINE atom_footer
339 :
340 : ! **************************************************************************************************
341 : !> \brief ...
342 : !> \param iw ...
343 : !> \param ni ...
344 : !> \param nr ...
345 : !> \param np ...
346 : ! **************************************************************************************************
347 34 : SUBROUTINE band_header(iw, ni, nr, np)
348 : INTEGER, INTENT(IN) :: iw, ni, nr, np
349 :
350 34 : IF (iw < 0) RETURN
351 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
352 17 : "*******************************************************************************", &
353 17 : "*******************************************************************************", &
354 17 : "** **", &
355 17 : "** ######## ### ## ## ######## Nudged Elastic Band Method **", &
356 17 : "** ## ## ## ## ### ## ## ## String Method **", &
357 34 : "** ## ## ## ## #### ## ## ## **"
358 : WRITE (UNIT=iw, FMT="(T2,A,T73,I5,1X,A)") &
359 17 : "** ######## ## ## ## ## ## ## ## Number of Images :", ni, "**", &
360 17 : "** ## ## ######### ## #### ## ## Number of Replicas:", nr, "**", &
361 34 : "** ## ## ## ## ## ### ## ## Number of Procs/Rep:", np, "**"
362 : WRITE (UNIT=iw, FMT="(T2,A79)") &
363 17 : "** ######## ## ## ## ## ######## **", &
364 17 : "** T. Laino 2009 - 2015 **", &
365 34 : "*******************************************************************************"
366 : WRITE (UNIT=iw, FMT="(T2,A79,/)") &
367 17 : "*******************************************************************************"
368 :
369 : END SUBROUTINE band_header
370 :
371 : ! **************************************************************************************************
372 : !> \brief ...
373 : !> \param iw ...
374 : !> \param nr ...
375 : !> \param np ...
376 : ! **************************************************************************************************
377 54 : SUBROUTINE vib_header(iw, nr, np)
378 : INTEGER, INTENT(IN) :: iw, nr, np
379 :
380 54 : IF (iw < 0) RETURN
381 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
382 27 : "*******************************************************************************", &
383 27 : "*******************************************************************************", &
384 27 : "** **", &
385 27 : "** # # # # # # ## **", &
386 27 : "** # # ### # ## ### #### ## # # ### # **", &
387 27 : "** # # # # # ## # # # # # # ## # # # # **", &
388 27 : "** ## # # # # # ## # # # # # # # ## # **", &
389 27 : "** ## # ### # # # ## # ## # # # # ### **", &
390 27 : "** **", &
391 27 : "** ## ## # **", &
392 27 : "** # # # # ### # # # ### ### **", &
393 54 : "** # # ## # # # # # # ## # ## **"
394 : WRITE (UNIT=iw, FMT="(T2,A,T73,I5,1X,A)") &
395 27 : "** #### # # # ## # ### ## # ## N. Replicas:", nr, "**", &
396 54 : "** # # # # # # ### # ### # ### N. Procs/Rep:", np, "**"
397 : WRITE (UNIT=iw, FMT="(T2,A79)") &
398 27 : "** ## **", &
399 27 : "** T. Laino and F. Schiffmann **", &
400 27 : "** 2008 - 2015 **", &
401 54 : "*******************************************************************************"
402 : WRITE (UNIT=iw, FMT="(T2,A79,/)") &
403 27 : "*******************************************************************************"
404 :
405 : END SUBROUTINE vib_header
406 :
407 : ! **************************************************************************************************
408 : !> \brief ...
409 : !> \param iw ...
410 : ! **************************************************************************************************
411 16 : SUBROUTINE sirius_header(iw)
412 : INTEGER, INTENT(IN) :: iw
413 :
414 16 : IF (iw < 0) RETURN
415 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
416 8 : "*******************************************************************************", &
417 8 : "*******************************************************************************", &
418 8 : "** **", &
419 8 : "** #### ## ## #### ##### ##### #### ## #### ## ## ## #### **", &
420 8 : "** ## #### ## ## ## ### ##### ## ## ## # ## ## ## ## **", &
421 8 : "** #### ## # ## ## ## ##### ### ##### ## #### ## ## ## ##### **", &
422 8 : "** ## ####### ## ## ## ### ## ## ## # ## ##### ## **", &
423 8 : "** ## ## # ## #### ## ### #### ## ## # ## ##### #### **", &
424 8 : "** **", &
425 8 : "** SIRIUS: Domain specific library for electronic structure calculations **", &
426 8 : "** **", &
427 16 : "*******************************************************************************"
428 : END SUBROUTINE sirius_header
429 :
430 : ! **************************************************************************************************
431 : !> \brief ...
432 : !> \param iw ...
433 : ! **************************************************************************************************
434 14 : SUBROUTINE tmc_header(iw)
435 : INTEGER, INTENT(IN) :: iw
436 :
437 14 : IF (iw < 0) RETURN
438 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
439 14 : "*******************************************************************************", &
440 14 : "*******************************************************************************", &
441 14 : "** **", &
442 14 : "** ########### ### ### ###### **", &
443 14 : "** ### #### #### ### **", &
444 14 : "** ### ### # # ### ### **", &
445 14 : "** ### ### # ### ### **", &
446 14 : "** ### ### ### ###### **", &
447 14 : "** TreeMonteCarlo Mandes Schoenherr **", &
448 14 : "** 2009 - 2015 **", &
449 14 : "*******************************************************************************", &
450 28 : "*******************************************************************************"
451 : END SUBROUTINE tmc_header
452 :
453 : ! **************************************************************************************************
454 : !> \brief ...
455 : !> \param iw ...
456 : ! **************************************************************************************************
457 6 : SUBROUTINE tmc_ana_header(iw)
458 : INTEGER, INTENT(IN) :: iw
459 :
460 6 : IF (iw < 0) RETURN
461 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
462 6 : "*******************************************************************************", &
463 6 : "*******************************************************************************", &
464 6 : "** **", &
465 6 : "** ########### ### ### ###### ## ### ## ## **", &
466 6 : "** ### #### #### ### #### #### ## #### **", &
467 6 : "** ### ### # # ### ### ## ## ## ## ## ## ## **", &
468 6 : "** ### ### # ### ### ###### ## #### ###### **", &
469 6 : "** ### ### ### ###### ## ## ## ### ## ## **", &
470 6 : "** Trajectory analyzer for TreeMonteCarlo ensembles Mandes Schoenherr **", &
471 6 : "** 2013 - 2015 **", &
472 6 : "*******************************************************************************", &
473 12 : "*******************************************************************************"
474 : END SUBROUTINE tmc_ana_header
475 : END MODULE header
476 :
|