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