(git:e7e05ae)
header.F
Go to the documentation of this file.
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,&
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 
32 CONTAINS
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 ! **************************************************************************************************
215  SUBROUTINE xtb_header(iw)
216  INTEGER, INTENT(in) :: iw
217 
218  IF (iw < 0) RETURN
219  WRITE (iw, '( / )')
220  WRITE (iw, '( 11(16x,a,/) )') &
221  ' ##### ##### # ####### ###### ', &
222  ' # # # # # # # # ', &
223  ' # # # # ## ## # # # ', &
224  ' # # ##### # ## ## # ###### ', &
225  ' # # # # # ### # # # ', &
226  ' # # # # # ## ## # # # ', &
227  ' #### # ##### # ## ## # ###### ', &
228  ' ', &
229  ' Version 1.0 ', &
230  ' J. Hutter and A. Hehn ', &
231  ' '
232  END SUBROUTINE xtb_header
233 ! **************************************************************************************************
234 !> \brief ...
235 !> \param iw ...
236 ! **************************************************************************************************
237  SUBROUTINE se_header(iw)
238  INTEGER, INTENT(in) :: iw
239 
240  IF (iw < 0) RETURN
241  WRITE (iw, '( / )')
242  WRITE (iw, '( 12(12x,a,/) )') &
243  ' ##### ##### # # # ###### ###### ##### ', &
244  ' # # # # # ## # # # # # # # ', &
245  ' # # # # # # # # # # # # # ', &
246  ' # # ##### # # # # # # # # # # ', &
247  ' # # # # # # # # # # # # # # ', &
248  ' # # # # # # ## # # # # # # ', &
249  ' #### # ##### # # # ###### ###### ##### ', &
250  ' ', &
251  ' T. Laino and J. Hutter ', &
252  ' ', &
253  ' 2008 - 2015 '
254 
255  END SUBROUTINE se_header
256 
257 ! **************************************************************************************************
258 !> \brief ...
259 !> \param iw ...
260 ! **************************************************************************************************
261  SUBROUTINE qs_header(iw)
262  INTEGER, INTENT(IN) :: iw
263 
264  IF (iw < 0) RETURN
265  WRITE (unit=iw, fmt="(/,(T2,A79))") &
266  "*******************************************************************************", &
267  "*******************************************************************************", &
268  "** **", &
269  "** ##### ## ## **", &
270  "** ## ## ## ## ## **", &
271  "** ## ## ## ###### **", &
272  "** ## ## ## ## ## ##### ## ## #### ## ##### ##### **", &
273  "** ## ## ## ## ## ## ## ## ## ## ## ## ## ## **", &
274  "** ## ## ## ## ## ## ## #### ### ## ###### ###### **", &
275  "** ## ### ## ## ## ## ## ## ## ## ## ## **", &
276  "** ####### ##### ## ##### ## ## #### ## ##### ## **", &
277  "** ## ## **", &
278  "** **", &
279  "** ... make the atoms dance **", &
280  "** **", &
281  "** Copyright (C) by CP2K developers group (2000-2024) **", &
282  "** J. Chem. Phys. 152, 194103 (2020) **", &
283  "** **", &
284  "*******************************************************************************"
285  END SUBROUTINE qs_header
286 
287 ! **************************************************************************************************
288 !> \brief ...
289 !> \param iw ...
290 ! **************************************************************************************************
291  SUBROUTINE atom_header(iw)
292  INTEGER, INTENT(IN) :: iw
293 
294  IF (iw < 0) RETURN
295  WRITE (iw, '( / )')
296  WRITE (iw, '( 14(25x,a,/) )') &
297  ' **** ****** **** **** ', &
298  ' ** ** ****** ** ** ****** ', &
299  ' ****** ** ** ** ** ** ', &
300  ' ** ** ** **** ** ** ', &
301  ' ', &
302  ' University of Zurich ', &
303  ' 2009 - 2015 ', &
304  ' ', &
305  ' Version 0.0 ', &
306  ' '
307  END SUBROUTINE atom_header
308 
309 ! **************************************************************************************************
310 !> \brief ...
311 !> \param iw ...
312 ! **************************************************************************************************
313  SUBROUTINE atom_footer(iw)
314  INTEGER, INTENT(IN) :: iw
315 
316  IF (iw < 0) RETURN
317  WRITE (iw, '( / )')
318  WRITE (iw, '( 14(25x,a,/) )') &
319  ' NORMAL TERMINATION OF ', &
320  ' ', &
321  ' **** ****** **** **** ', &
322  ' ** ** ****** ** ** ****** ', &
323  ' ****** ** ** ** ** ** ', &
324  ' ** ** ** **** ** ** '
325 
326  END SUBROUTINE atom_footer
327 
328 ! **************************************************************************************************
329 !> \brief ...
330 !> \param iw ...
331 !> \param ni ...
332 !> \param nr ...
333 !> \param np ...
334 ! **************************************************************************************************
335  SUBROUTINE band_header(iw, ni, nr, np)
336  INTEGER, INTENT(IN) :: iw, ni, nr, np
337 
338  IF (iw < 0) RETURN
339  WRITE (unit=iw, fmt="(/,(T2,A79))") &
340  "*******************************************************************************", &
341  "*******************************************************************************", &
342  "** **", &
343  "** ######## ### ## ## ######## Nudged Elastic Band Method **", &
344  "** ## ## ## ## ### ## ## ## String Method **", &
345  "** ## ## ## ## #### ## ## ## **"
346  WRITE (unit=iw, fmt="(T2,A,T73,I5,1X,A)") &
347  "** ######## ## ## ## ## ## ## ## Number of Images :", ni, "**", &
348  "** ## ## ######### ## #### ## ## Number of Replicas:", nr, "**", &
349  "** ## ## ## ## ## ### ## ## Number of Procs/Rep:", np, "**"
350  WRITE (unit=iw, fmt="(T2,A79)") &
351  "** ######## ## ## ## ## ######## **", &
352  "** T. Laino 2009 - 2015 **", &
353  "*******************************************************************************"
354  WRITE (unit=iw, fmt="(T2,A79,/)") &
355  "*******************************************************************************"
356 
357  END SUBROUTINE band_header
358 
359 ! **************************************************************************************************
360 !> \brief ...
361 !> \param iw ...
362 !> \param nr ...
363 !> \param np ...
364 ! **************************************************************************************************
365  SUBROUTINE vib_header(iw, nr, np)
366  INTEGER, INTENT(IN) :: iw, nr, np
367 
368  IF (iw < 0) RETURN
369  WRITE (unit=iw, fmt="(/,(T2,A79))") &
370  "*******************************************************************************", &
371  "*******************************************************************************", &
372  "** **", &
373  "** # # # # # # ## **", &
374  "** # # ### # ## ### #### ## # # ### # **", &
375  "** # # # # # ## # # # # # # ## # # # # **", &
376  "** ## # # # # # ## # # # # # # # ## # **", &
377  "** ## # ### # # # ## # ## # # # # ### **", &
378  "** **", &
379  "** ## ## # **", &
380  "** # # # # ### # # # ### ### **", &
381  "** # # ## # # # # # # ## # ## **"
382  WRITE (unit=iw, fmt="(T2,A,T73,I5,1X,A)") &
383  "** #### # # # ## # ### ## # ## N. Replicas:", nr, "**", &
384  "** # # # # # # ### # ### # ### N. Procs/Rep:", np, "**"
385  WRITE (unit=iw, fmt="(T2,A79)") &
386  "** ## **", &
387  "** T. Laino and F. Schiffmann **", &
388  "** 2008 - 2015 **", &
389  "*******************************************************************************"
390  WRITE (unit=iw, fmt="(T2,A79,/)") &
391  "*******************************************************************************"
392 
393  END SUBROUTINE vib_header
394 
395 ! **************************************************************************************************
396 !> \brief ...
397 !> \param iw ...
398 ! **************************************************************************************************
399  SUBROUTINE sirius_header(iw)
400  INTEGER, INTENT(IN) :: iw
401 
402  IF (iw < 0) RETURN
403  WRITE (unit=iw, fmt="(/,(T2,A79))") &
404  "*******************************************************************************", &
405  "*******************************************************************************", &
406  "** **", &
407  "** #### ## ## #### ##### ##### #### ## #### ## ## ## #### **", &
408  "** ## #### ## ## ## ### ##### ## ## ## # ## ## ## ## **", &
409  "** #### ## # ## ## ## ##### ### ##### ## #### ## ## ## ##### **", &
410  "** ## ####### ## ## ## ### ## ## ## # ## ##### ## **", &
411  "** ## ## # ## #### ## ### #### ## ## # ## ##### #### **", &
412  "** **", &
413  "** SIRIUS: Domain specific library for electronic structure calculations **", &
414  "** **", &
415  "*******************************************************************************"
416  END SUBROUTINE sirius_header
417 
418 ! **************************************************************************************************
419 !> \brief ...
420 !> \param iw ...
421 ! **************************************************************************************************
422  SUBROUTINE tmc_header(iw)
423  INTEGER, INTENT(IN) :: iw
424 
425  IF (iw < 0) RETURN
426  WRITE (unit=iw, fmt="(/,(T2,A79))") &
427  "*******************************************************************************", &
428  "*******************************************************************************", &
429  "** **", &
430  "** ########### ### ### ###### **", &
431  "** ### #### #### ### **", &
432  "** ### ### # # ### ### **", &
433  "** ### ### # ### ### **", &
434  "** ### ### ### ###### **", &
435  "** TreeMonteCarlo Mandes Schoenherr **", &
436  "** 2009 - 2015 **", &
437  "*******************************************************************************", &
438  "*******************************************************************************"
439  END SUBROUTINE tmc_header
440 
441 ! **************************************************************************************************
442 !> \brief ...
443 !> \param iw ...
444 ! **************************************************************************************************
445  SUBROUTINE tmc_ana_header(iw)
446  INTEGER, INTENT(IN) :: iw
447 
448  IF (iw < 0) RETURN
449  WRITE (unit=iw, fmt="(/,(T2,A79))") &
450  "*******************************************************************************", &
451  "*******************************************************************************", &
452  "** **", &
453  "** ########### ### ### ###### ## ### ## ## **", &
454  "** ### #### #### ### #### #### ## #### **", &
455  "** ### ### # # ### ### ## ## ## ## ## ## ## **", &
456  "** ### ### # ### ### ###### ## #### ###### **", &
457  "** ### ### ### ###### ## ## ## ### ## ## **", &
458  "** Trajectory analyzer for TreeMonteCarlo ensembles Mandes Schoenherr **", &
459  "** 2013 - 2015 **", &
460  "*******************************************************************************", &
461  "*******************************************************************************"
462  END SUBROUTINE tmc_ana_header
463 END MODULE header
464 
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:66
integer, public r_pid
Definition: cp2k_info.F:67
character(len=default_path_length), public r_cwd
Definition: cp2k_info.F:65
character(len=default_string_length), public r_user_name
Definition: cp2k_info.F:66
character(len=26), public r_datx
Definition: cp2k_info.F:64
Definition: header.F:13
subroutine, public dftb_header(iw)
...
Definition: header.F:193
subroutine, public vib_header(iw, nr, np)
...
Definition: header.F:366
subroutine, public xtb_header(iw)
...
Definition: header.F:216
subroutine, public tddfpt_header(iw)
...
Definition: header.F:122
subroutine, public sirius_header(iw)
...
Definition: header.F:400
subroutine, public fist_header(iw)
...
Definition: header.F:164
subroutine, public qs_header(iw)
...
Definition: header.F:262
subroutine, public tmc_ana_header(iw)
...
Definition: header.F:446
subroutine, public atom_header(iw)
...
Definition: header.F:292
subroutine, public qmmm_header(iw)
...
Definition: header.F:96
subroutine, public atom_footer(iw)
...
Definition: header.F:314
subroutine, public se_header(iw)
...
Definition: header.F:238
subroutine, public tddfpt_soc_header(iw)
...
Definition: header.F:143
subroutine, public tmc_header(iw)
...
Definition: header.F:423
subroutine, public cp2k_header(iw, wdir)
...
Definition: header.F:40
subroutine, public cp2k_footer(iw, wdir)
...
Definition: header.F:69
subroutine, public band_header(iw, ni, nr, np)
...
Definition: header.F:336
Defines the basic variable types.
Definition: kinds.F:23
integer, parameter, public default_path_length
Definition: kinds.F:58