(git:e5b1968)
Loading...
Searching...
No Matches
header.F
Go to the documentation of this file.
1!--------------------------------------------------------------------------------------------------!
2! CP2K: A general program to perform molecular dynamics simulations !
3! Copyright 2000-2025 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! **************************************************************************************************
13MODULE header
14 USE cp2k_info, ONLY: r_cwd,&
15 r_datx,&
17 r_pid,&
19 USE kinds, ONLY: default_path_length
20#include "./base/base_uses.f90"
21
22 IMPLICIT NONE
23
24 PRIVATE
28 PUBLIC :: tmc_header, tmc_ana_header
29 PUBLIC :: sirius_header
30 PUBLIC :: tddfpt_soc_header
31
32CONTAINS
33
34! **************************************************************************************************
35!> \brief ...
36!> \param iw ...
37!> \param wdir ...
38! **************************************************************************************************
39 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 IF (iw < 0) RETURN
47 cwd = r_cwd
48 IF (PRESENT(wdir)) cwd = wdir
49 WRITE (unit=iw, &
50 fmt="(/,A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
51 " **** **** ****** ** PROGRAM STARTED AT ", adjustr(r_datx), &
52 " ***** ** *** *** ** PROGRAM STARTED ON ", adjustr(r_host_name(1:30)), &
53 " ** **** ****** PROGRAM STARTED BY ", adjustr(r_user_name(1:30)), &
54 " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
55 WRITE (unit=iw, fmt="(A,T44,A37)") &
56 " **** ** ******* ** PROGRAM STARTED IN ", adjustr(cwd(1:37))
57 DO l = 38, len_trim(cwd), 37
58 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 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 IF (iw < 0) RETURN
76 cwd = r_cwd
77 IF (PRESENT(wdir)) cwd = wdir
78 WRITE (unit=iw, &
79 fmt="(A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
80 " **** **** ****** ** PROGRAM ENDED AT ", adjustr(r_datx), &
81 " ***** ** *** *** ** PROGRAM RAN ON ", adjustr(r_host_name(1:30)), &
82 " ** **** ****** PROGRAM RAN BY ", adjustr(r_user_name(1:30)), &
83 " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
84 WRITE (unit=iw, fmt="(A,T44,A37)") &
85 " **** ** ******* ** PROGRAM STOPPED IN ", adjustr(cwd(1:37))
86 DO l = 38, len_trim(cwd), 37
87 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 SUBROUTINE qmmm_header(iw)
96 INTEGER, INTENT(in) :: iw
97
98 IF (iw < 0) RETURN
99 WRITE (iw, '(/,(T2,A79))') &
100 "*******************************************************************************", &
101 "*******************************************************************************", &
102 "** **", &
103 "** ####### ## ## ## ## ## ## **", &
104 "** ## ## ### ### ### ### ### ### **", &
105 "** ## ## #### #### #### #### #### #### **", &
106 "** ## ## ## ### ## ## ### ## ## ### ## **", &
107 "** ## ## ## ## ## ## ## ## ## **", &
108 "** ## ## ## ## ## ## ## ## T.Laino and F.Mohamed **", &
109 "** ##### ## ## ## ## ## ## ## 2005 - 2015 **", &
110 "** **", &
111 "** Calculation Started.. **", &
112 "*******************************************************************************", &
113 "*******************************************************************************"
114
115 END SUBROUTINE qmmm_header
116
117! **************************************************************************************************
118!> \brief ...
119!> \param iw ...
120! **************************************************************************************************
121 SUBROUTINE tddfpt_header(iw)
122 INTEGER, INTENT(in) :: iw
123
124 IF (iw < 0) RETURN
125 WRITE (iw, '(/,(T2,A79))') &
126 "*******************************************************************************", &
127 "** **", &
128 "** ######## ####### ####### ######## ####### ######## **", &
129 "** ## ## ## ## ## ## ## ## ## **", &
130 "** ## ## ## ## ## ###### ####### ## **", &
131 "** ## ## ## ## ## ## ## ## **", &
132 "** ## ####### ####### ## ## ## **", &
133 "** **", &
134 "*******************************************************************************"
135
136 END SUBROUTINE tddfpt_header
137
138! **************************************************************************************************
139!> \brief ...
140!> \param iw ...
141! **************************************************************************************************
142 SUBROUTINE tddfpt_soc_header(iw)
143 INTEGER, INTENT(in) :: iw
144
145 IF (iw < 0) RETURN
146 WRITE (iw, '(/,(T2,A79))') &
147 "*******************************************************************************", &
148 "** **", &
149 "** ####### ####### ####### **", &
150 "** # ## ## ## ## **", &
151 "** ### ###### ## ## ## **", &
152 "** # ## ## ## ## **", &
153 "** ###### ####### ####### **", &
154 "** Based on the xas module from Augustin Bussy **", &
155 "*******************************************************************************"
156
157 END SUBROUTINE tddfpt_soc_header
158
159! **************************************************************************************************
160!> \brief ...
161!> \param iw ...
162! **************************************************************************************************
163 SUBROUTINE fist_header(iw)
164 INTEGER, INTENT(in) :: iw
165
166 IF (iw > 0) THEN
167 WRITE (iw, '( / )')
168 WRITE (iw, '( 14(20x,a,/) )') &
169 ' ************* ******** *********** ', &
170 ' ************* ********************** ', &
171 ' **** **** **** *********** ', &
172 ' ******** **** ******* **** ', &
173 ' ******* **** ******* **** ', &
174 ' **** **** **** **** ', &
175 ' **** **** ********** **** ', &
176 ' **** **** ******** **** ', &
177 ' FRONTIERS IN SIMULATION TECHNOLOGY ', &
178 ' ', &
179 ' C.J. Mundy, S. Balasubramanian, ', &
180 ' Ken Bagchi, J. Hutter, Ari Seitsonen ', &
181 ' IFW Kuo, T. Laino, J. VandeVondele ', &
182 ' Version 1.0 ', &
183 ' '
184 END IF
185
186 END SUBROUTINE fist_header
187
188! **************************************************************************************************
189!> \brief ...
190!> \param iw ...
191! **************************************************************************************************
192 SUBROUTINE dftb_header(iw)
193 INTEGER, INTENT(in) :: iw
194
195 IF (iw < 0) RETURN
196 WRITE (iw, '( / )')
197 WRITE (iw, '( 11(12x,a,/) )') &
198 ' ##### ##### # ###### ####### ####### ###### ', &
199 ' # # # # # # # # # # # ', &
200 ' # # # # # # # # # # ', &
201 ' # # ##### # # # ##### # ###### ', &
202 ' # # # # # # # # # # # ', &
203 ' # # # # # # # # # # # ', &
204 ' #### # ##### # ###### # # ###### ', &
205 ' ', &
206 ' Version 0.2 ', &
207 ' J. Hutter and T. Heine ', &
208 ' '
209 END SUBROUTINE dftb_header
210
211! **************************************************************************************************
212!> \brief ...
213!> \param iw ...
214!> \param gfn_type ...
215! **************************************************************************************************
216 SUBROUTINE xtb_header(iw, gfn_type)
217 INTEGER, INTENT(in) :: iw, gfn_type
218
219 IF (iw < 0) RETURN
220 WRITE (iw, '( / )')
221 WRITE (iw, '( 7(16x,a,/) )') &
222 ' ##### ##### # ####### ###### ', &
223 ' # # # # # # # # ', &
224 ' # # # # ## ## # # # ', &
225 ' # # ##### # ## ## # ###### ', &
226 ' # # # # # ### # # # ', &
227 ' # # # # # ## ## # # # ', &
228 ' #### # ##### # ## ## # ###### '
229
230 SELECT CASE (gfn_type)
231 CASE (0)
232 WRITE (iw, '( 34x,a )') ' GFN0-xTB '
233 CASE (1)
234 WRITE (iw, '( 34x,a )') ' GFN1-xTB '
235 CASE (2)
236 WRITE (iw, '( 34x,a )') ' GFN2-xTB '
237 CASE DEFAULT
238 END SELECT
239
240 WRITE (iw, '( 2(16x,a,/) )') &
241 ' Version 1.1 ', &
242 ' J. Hutter and A. Hehn '
243
244 END SUBROUTINE xtb_header
245
246! **************************************************************************************************
247!> \brief ...
248!> \param iw ...
249!> \param tb_type ...
250! **************************************************************************************************
251 SUBROUTINE tblite_header(iw, tb_type)
252 INTEGER, INTENT(in) :: iw, tb_type
253
254 IF (iw < 0) RETURN
255 WRITE (iw, '( / )')
256 WRITE (iw, '( 7(16x,a,/) )') &
257 ' ##### ##### # # # # # ', &
258 ' # # # # # ##### # # # ##### #### ', &
259 ' # # # # # ### # # # # ', &
260 ' # # ##### # # # # # # # ###### ', &
261 ' # # # # # # # # # # # # ', &
262 ' # # # # # # # # # # # # # # ', &
263 ' #### # ##### # # ### ## # # ### '
264
265 SELECT CASE (tb_type)
266 CASE (1)
267 WRITE (iw, '( 34x,a )') ' GFN1-xTB '
268 CASE (2)
269 WRITE (iw, '( 34x,a )') ' GFN2-xTB '
270 CASE (3)
271 WRITE (iw, '( 34x,a )') ' IPEA1-xTB '
272 CASE DEFAULT
273 END SELECT
274
275 WRITE (iw, '( 2(16x,a,/) )') &
276 ' Version 0.0 ', &
277 ' Johann V. Pototschnig '
278
279 END SUBROUTINE tblite_header
280
281! **************************************************************************************************
282!> \brief ...
283!> \param iw ...
284! **************************************************************************************************
285 SUBROUTINE se_header(iw)
286 INTEGER, INTENT(in) :: iw
287
288 IF (iw < 0) RETURN
289 WRITE (iw, '( / )')
290 WRITE (iw, '( 12(12x,a,/) )') &
291 ' ##### ##### # # # ###### ###### ##### ', &
292 ' # # # # # ## # # # # # # # ', &
293 ' # # # # # # # # # # # # # ', &
294 ' # # ##### # # # # # # # # # # ', &
295 ' # # # # # # # # # # # # # # ', &
296 ' # # # # # # ## # # # # # # ', &
297 ' #### # ##### # # # ###### ###### ##### ', &
298 ' ', &
299 ' T. Laino and J. Hutter ', &
300 ' ', &
301 ' 2008 - 2015 '
302
303 END SUBROUTINE se_header
304
305! **************************************************************************************************
306!> \brief ...
307!> \param iw ...
308! **************************************************************************************************
309 SUBROUTINE qs_header(iw)
310 INTEGER, INTENT(IN) :: iw
311
312 IF (iw < 0) RETURN
313 WRITE (unit=iw, fmt="(/,(T2,A79))") &
314 "*******************************************************************************", &
315 "*******************************************************************************", &
316 "** **", &
317 "** ##### ## ## **", &
318 "** ## ## ## ## ## **", &
319 "** ## ## ## ###### **", &
320 "** ## ## ## ## ## ##### ## ## #### ## ##### ##### **", &
321 "** ## ## ## ## ## ## ## ## ## ## ## ## ## ## **", &
322 "** ## ## ## ## ## ## ## #### ### ## ###### ###### **", &
323 "** ## ### ## ## ## ## ## ## ## ## ## ## **", &
324 "** ####### ##### ## ##### ## ## #### ## ##### ## **", &
325 "** ## ## **", &
326 "** **", &
327 "** ... make the atoms dance **", &
328 "** **", &
329 "** Copyright (C) by CP2K developers group (2000-2025) **", &
330 "** J. Chem. Phys. 152, 194103 (2020) **", &
331 "** **", &
332 "*******************************************************************************"
333 END SUBROUTINE qs_header
334
335! **************************************************************************************************
336!> \brief ...
337!> \param iw ...
338! **************************************************************************************************
339 SUBROUTINE atom_header(iw)
340 INTEGER, INTENT(IN) :: iw
341
342 IF (iw < 0) RETURN
343 WRITE (iw, '( / )')
344 WRITE (iw, '( 14(25x,a,/) )') &
345 ' **** ****** **** **** ', &
346 ' ** ** ****** ** ** ****** ', &
347 ' ****** ** ** ** ** ** ', &
348 ' ** ** ** **** ** ** ', &
349 ' ', &
350 ' University of Zurich ', &
351 ' 2009 - 2015 ', &
352 ' ', &
353 ' Version 0.0 ', &
354 ' '
355 END SUBROUTINE atom_header
356
357! **************************************************************************************************
358!> \brief ...
359!> \param iw ...
360! **************************************************************************************************
361 SUBROUTINE atom_footer(iw)
362 INTEGER, INTENT(IN) :: iw
363
364 IF (iw < 0) RETURN
365 WRITE (iw, '( / )')
366 WRITE (iw, '( 14(25x,a,/) )') &
367 ' NORMAL TERMINATION OF ', &
368 ' ', &
369 ' **** ****** **** **** ', &
370 ' ** ** ****** ** ** ****** ', &
371 ' ****** ** ** ** ** ** ', &
372 ' ** ** ** **** ** ** '
373
374 END SUBROUTINE atom_footer
375
376! **************************************************************************************************
377!> \brief ...
378!> \param iw ...
379!> \param ni ...
380!> \param nr ...
381!> \param np ...
382! **************************************************************************************************
383 SUBROUTINE band_header(iw, ni, nr, np)
384 INTEGER, INTENT(IN) :: iw, ni, nr, np
385
386 IF (iw < 0) RETURN
387 WRITE (unit=iw, fmt="(/,(T2,A79))") &
388 "*******************************************************************************", &
389 "*******************************************************************************", &
390 "** **", &
391 "** ######## ### ## ## ######## Nudged Elastic Band Method **", &
392 "** ## ## ## ## ### ## ## ## String Method **", &
393 "** ## ## ## ## #### ## ## ## **"
394 WRITE (unit=iw, fmt="(T2,A,T73,I5,1X,A)") &
395 "** ######## ## ## ## ## ## ## ## Number of Images :", ni, "**", &
396 "** ## ## ######### ## #### ## ## Number of Replicas:", nr, "**", &
397 "** ## ## ## ## ## ### ## ## Number of Procs/Rep:", np, "**"
398 WRITE (unit=iw, fmt="(T2,A79)") &
399 "** ######## ## ## ## ## ######## **", &
400 "** T. Laino 2009 - 2015 **", &
401 "*******************************************************************************"
402 WRITE (unit=iw, fmt="(T2,A79,/)") &
403 "*******************************************************************************"
404
405 END SUBROUTINE band_header
406
407! **************************************************************************************************
408!> \brief ...
409!> \param iw ...
410!> \param nr ...
411!> \param np ...
412! **************************************************************************************************
413 SUBROUTINE vib_header(iw, nr, np)
414 INTEGER, INTENT(IN) :: iw, nr, np
415
416 IF (iw < 0) RETURN
417 WRITE (unit=iw, fmt="(/,(T2,A79))") &
418 "*******************************************************************************", &
419 "*******************************************************************************", &
420 "** **", &
421 "** # # # # # # ## **", &
422 "** # # ### # ## ### #### ## # # ### # **", &
423 "** # # # # # ## # # # # # # ## # # # # **", &
424 "** ## # # # # # ## # # # # # # # ## # **", &
425 "** ## # ### # # # ## # ## # # # # ### **", &
426 "** **", &
427 "** ## ## # **", &
428 "** # # # # ### # # # ### ### **", &
429 "** # # ## # # # # # # ## # ## **"
430 WRITE (unit=iw, fmt="(T2,A,T73,I5,1X,A)") &
431 "** #### # # # ## # ### ## # ## N. Replicas:", nr, "**", &
432 "** # # # # # # ### # ### # ### N. Procs/Rep:", np, "**"
433 WRITE (unit=iw, fmt="(T2,A79)") &
434 "** ## **", &
435 "** T. Laino and F. Schiffmann **", &
436 "** 2008 - 2015 **", &
437 "*******************************************************************************"
438 WRITE (unit=iw, fmt="(T2,A79,/)") &
439 "*******************************************************************************"
440
441 END SUBROUTINE vib_header
442
443! **************************************************************************************************
444!> \brief ...
445!> \param iw ...
446! **************************************************************************************************
447 SUBROUTINE sirius_header(iw)
448 INTEGER, INTENT(IN) :: iw
449
450 IF (iw < 0) RETURN
451 WRITE (unit=iw, fmt="(/,(T2,A79))") &
452 "*******************************************************************************", &
453 "*******************************************************************************", &
454 "** **", &
455 "** #### ## ## #### ##### ##### #### ## #### ## ## ## #### **", &
456 "** ## #### ## ## ## ### ##### ## ## ## # ## ## ## ## **", &
457 "** #### ## # ## ## ## ##### ### ##### ## #### ## ## ## ##### **", &
458 "** ## ####### ## ## ## ### ## ## ## # ## ##### ## **", &
459 "** ## ## # ## #### ## ### #### ## ## # ## ##### #### **", &
460 "** **", &
461 "** SIRIUS: Domain specific library for electronic structure calculations **", &
462 "** **", &
463 "*******************************************************************************"
464 END SUBROUTINE sirius_header
465
466! **************************************************************************************************
467!> \brief ...
468!> \param iw ...
469! **************************************************************************************************
470 SUBROUTINE tmc_header(iw)
471 INTEGER, INTENT(IN) :: iw
472
473 IF (iw < 0) RETURN
474 WRITE (unit=iw, fmt="(/,(T2,A79))") &
475 "*******************************************************************************", &
476 "*******************************************************************************", &
477 "** **", &
478 "** ########### ### ### ###### **", &
479 "** ### #### #### ### **", &
480 "** ### ### # # ### ### **", &
481 "** ### ### # ### ### **", &
482 "** ### ### ### ###### **", &
483 "** TreeMonteCarlo Mandes Schoenherr **", &
484 "** 2009 - 2015 **", &
485 "*******************************************************************************", &
486 "*******************************************************************************"
487 END SUBROUTINE tmc_header
488
489! **************************************************************************************************
490!> \brief ...
491!> \param iw ...
492! **************************************************************************************************
493 SUBROUTINE tmc_ana_header(iw)
494 INTEGER, INTENT(IN) :: iw
495
496 IF (iw < 0) RETURN
497 WRITE (unit=iw, fmt="(/,(T2,A79))") &
498 "*******************************************************************************", &
499 "*******************************************************************************", &
500 "** **", &
501 "** ########### ### ### ###### ## ### ## ## **", &
502 "** ### #### #### ### #### #### ## #### **", &
503 "** ### ### # # ### ### ## ## ## ## ## ## ## **", &
504 "** ### ### # ### ### ###### ## #### ###### **", &
505 "** ### ### ### ###### ## ## ## ### ## ## **", &
506 "** Trajectory analyzer for TreeMonteCarlo ensembles Mandes Schoenherr **", &
507 "** 2013 - 2015 **", &
508 "*******************************************************************************", &
509 "*******************************************************************************"
510 END SUBROUTINE tmc_ana_header
511END MODULE header
512
some minimal info about CP2K, including its version and license
Definition cp2k_info.F:16
character(len=default_string_length), public r_host_name
Definition cp2k_info.F:68
integer, public r_pid
Definition cp2k_info.F:69
character(len=default_path_length), public r_cwd
Definition cp2k_info.F:67
character(len=default_string_length), public r_user_name
Definition cp2k_info.F:68
character(len=26), public r_datx
Definition cp2k_info.F:66
subroutine, public dftb_header(iw)
...
Definition header.F:193
subroutine, public vib_header(iw, nr, np)
...
Definition header.F:414
subroutine, public tddfpt_header(iw)
...
Definition header.F:122
subroutine, public sirius_header(iw)
...
Definition header.F:448
subroutine, public fist_header(iw)
...
Definition header.F:164
subroutine, public qs_header(iw)
...
Definition header.F:310
subroutine, public tmc_ana_header(iw)
...
Definition header.F:494
subroutine, public atom_header(iw)
...
Definition header.F:340
subroutine, public qmmm_header(iw)
...
Definition header.F:96
subroutine, public atom_footer(iw)
...
Definition header.F:362
subroutine, public se_header(iw)
...
Definition header.F:286
subroutine, public xtb_header(iw, gfn_type)
...
Definition header.F:217
subroutine, public tddfpt_soc_header(iw)
...
Definition header.F:143
subroutine, public tmc_header(iw)
...
Definition header.F:471
subroutine, public cp2k_header(iw, wdir)
...
Definition header.F:40
subroutine, public tblite_header(iw, tb_type)
...
Definition header.F:252
subroutine, public cp2k_footer(iw, wdir)
...
Definition header.F:69
subroutine, public band_header(iw, ni, nr, np)
...
Definition header.F:384
Defines the basic variable types.
Definition kinds.F:23
integer, parameter, public default_path_length
Definition kinds.F:58