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 9025 : 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 9025 : IF (iw < 0) RETURN
47 4616 : cwd = r_cwd
48 4616 : IF (PRESENT(wdir)) cwd = wdir
49 : WRITE (UNIT=iw, &
50 : FMT="(/,A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
51 4616 : " **** **** ****** ** PROGRAM STARTED AT ", ADJUSTR(r_datx), &
52 4616 : " ***** ** *** *** ** PROGRAM STARTED ON ", ADJUSTR(r_host_name(1:30)), &
53 4616 : " ** **** ****** PROGRAM STARTED BY ", ADJUSTR(r_user_name(1:30)), &
54 9232 : " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
55 : WRITE (UNIT=iw, FMT="(A,T44,A37)") &
56 4616 : " **** ** ******* ** PROGRAM STARTED IN ", ADJUSTR(cwd(1:37))
57 12397 : DO l = 38, LEN_TRIM(cwd), 37
58 12397 : 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 4650 : 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 4650 : IF (iw < 0) RETURN
76 4649 : cwd = r_cwd
77 4649 : IF (PRESENT(wdir)) cwd = wdir
78 : WRITE (UNIT=iw, &
79 : FMT="(A,T55,A26,/,A,T51,A30,/,A,T51,A30,/,A,T71,I10)") &
80 4649 : " **** **** ****** ** PROGRAM ENDED AT ", ADJUSTR(r_datx), &
81 4649 : " ***** ** *** *** ** PROGRAM RAN ON ", ADJUSTR(r_host_name(1:30)), &
82 4649 : " ** **** ****** PROGRAM RAN BY ", ADJUSTR(r_user_name(1:30)), &
83 9298 : " ***** ** ** ** ** PROGRAM PROCESS ID ", r_pid
84 : WRITE (UNIT=iw, FMT="(A,T44,A37)") &
85 4649 : " **** ** ******* ** PROGRAM STOPPED IN ", ADJUSTR(cwd(1:37))
86 12463 : DO l = 38, LEN_TRIM(cwd), 37
87 12463 : 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 : ! **************************************************************************************************
215 248 : SUBROUTINE xtb_header(iw)
216 : INTEGER, INTENT(in) :: iw
217 :
218 248 : IF (iw < 0) RETURN
219 129 : WRITE (iw, '( / )')
220 : WRITE (iw, '( 11(16x,a,/) )') &
221 129 : ' ##### ##### # ####### ###### ', &
222 129 : ' # # # # # # # # ', &
223 129 : ' # # # # ## ## # # # ', &
224 129 : ' # # ##### # ## ## # ###### ', &
225 129 : ' # # # # # ### # # # ', &
226 129 : ' # # # # # ## ## # # # ', &
227 129 : ' #### # ##### # ## ## # ###### ', &
228 129 : ' ', &
229 129 : ' Version 1.0 ', &
230 129 : ' J. Hutter and A. Hehn ', &
231 258 : ' '
232 : END SUBROUTINE xtb_header
233 : ! **************************************************************************************************
234 : !> \brief ...
235 : !> \param iw ...
236 : ! **************************************************************************************************
237 998 : SUBROUTINE se_header(iw)
238 : INTEGER, INTENT(in) :: iw
239 :
240 998 : IF (iw < 0) RETURN
241 500 : WRITE (iw, '( / )')
242 : WRITE (iw, '( 12(12x,a,/) )') &
243 500 : ' ##### ##### # # # ###### ###### ##### ', &
244 500 : ' # # # # # ## # # # # # # # ', &
245 500 : ' # # # # # # # # # # # # # ', &
246 500 : ' # # ##### # # # # # # # # # # ', &
247 500 : ' # # # # # # # # # # # # # # ', &
248 500 : ' # # # # # # ## # # # # # # ', &
249 500 : ' #### # ##### # # # ###### ###### ##### ', &
250 500 : ' ', &
251 500 : ' T. Laino and J. Hutter ', &
252 500 : ' ', &
253 1000 : ' 2008 - 2015 '
254 :
255 : END SUBROUTINE se_header
256 :
257 : ! **************************************************************************************************
258 : !> \brief ...
259 : !> \param iw ...
260 : ! **************************************************************************************************
261 5116 : SUBROUTINE qs_header(iw)
262 : INTEGER, INTENT(IN) :: iw
263 :
264 5116 : IF (iw < 0) RETURN
265 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
266 2583 : "*******************************************************************************", &
267 2583 : "*******************************************************************************", &
268 2583 : "** **", &
269 2583 : "** ##### ## ## **", &
270 2583 : "** ## ## ## ## ## **", &
271 2583 : "** ## ## ## ###### **", &
272 2583 : "** ## ## ## ## ## ##### ## ## #### ## ##### ##### **", &
273 2583 : "** ## ## ## ## ## ## ## ## ## ## ## ## ## ## **", &
274 2583 : "** ## ## ## ## ## ## ## #### ### ## ###### ###### **", &
275 2583 : "** ## ### ## ## ## ## ## ## ## ## ## ## **", &
276 2583 : "** ####### ##### ## ##### ## ## #### ## ##### ## **", &
277 2583 : "** ## ## **", &
278 2583 : "** **", &
279 2583 : "** ... make the atoms dance **", &
280 2583 : "** **", &
281 2583 : "** Copyright (C) by CP2K developers group (2000-2024) **", &
282 2583 : "** J. Chem. Phys. 152, 194103 (2020) **", &
283 2583 : "** **", &
284 5166 : "*******************************************************************************"
285 : END SUBROUTINE qs_header
286 :
287 : ! **************************************************************************************************
288 : !> \brief ...
289 : !> \param iw ...
290 : ! **************************************************************************************************
291 360 : SUBROUTINE atom_header(iw)
292 : INTEGER, INTENT(IN) :: iw
293 :
294 360 : IF (iw < 0) RETURN
295 180 : WRITE (iw, '( / )')
296 : WRITE (iw, '( 14(25x,a,/) )') &
297 180 : ' **** ****** **** **** ', &
298 180 : ' ** ** ****** ** ** ****** ', &
299 180 : ' ****** ** ** ** ** ** ', &
300 180 : ' ** ** ** **** ** ** ', &
301 180 : ' ', &
302 180 : ' University of Zurich ', &
303 180 : ' 2009 - 2015 ', &
304 180 : ' ', &
305 180 : ' Version 0.0 ', &
306 360 : ' '
307 : END SUBROUTINE atom_header
308 :
309 : ! **************************************************************************************************
310 : !> \brief ...
311 : !> \param iw ...
312 : ! **************************************************************************************************
313 360 : SUBROUTINE atom_footer(iw)
314 : INTEGER, INTENT(IN) :: iw
315 :
316 360 : IF (iw < 0) RETURN
317 180 : WRITE (iw, '( / )')
318 : WRITE (iw, '( 14(25x,a,/) )') &
319 180 : ' NORMAL TERMINATION OF ', &
320 180 : ' ', &
321 180 : ' **** ****** **** **** ', &
322 180 : ' ** ** ****** ** ** ****** ', &
323 180 : ' ****** ** ** ** ** ** ', &
324 360 : ' ** ** ** **** ** ** '
325 :
326 : END SUBROUTINE atom_footer
327 :
328 : ! **************************************************************************************************
329 : !> \brief ...
330 : !> \param iw ...
331 : !> \param ni ...
332 : !> \param nr ...
333 : !> \param np ...
334 : ! **************************************************************************************************
335 34 : SUBROUTINE band_header(iw, ni, nr, np)
336 : INTEGER, INTENT(IN) :: iw, ni, nr, np
337 :
338 34 : IF (iw < 0) RETURN
339 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
340 17 : "*******************************************************************************", &
341 17 : "*******************************************************************************", &
342 17 : "** **", &
343 17 : "** ######## ### ## ## ######## Nudged Elastic Band Method **", &
344 17 : "** ## ## ## ## ### ## ## ## String Method **", &
345 34 : "** ## ## ## ## #### ## ## ## **"
346 : WRITE (UNIT=iw, FMT="(T2,A,T73,I5,1X,A)") &
347 17 : "** ######## ## ## ## ## ## ## ## Number of Images :", ni, "**", &
348 17 : "** ## ## ######### ## #### ## ## Number of Replicas:", nr, "**", &
349 34 : "** ## ## ## ## ## ### ## ## Number of Procs/Rep:", np, "**"
350 : WRITE (UNIT=iw, FMT="(T2,A79)") &
351 17 : "** ######## ## ## ## ## ######## **", &
352 17 : "** T. Laino 2009 - 2015 **", &
353 34 : "*******************************************************************************"
354 : WRITE (UNIT=iw, FMT="(T2,A79,/)") &
355 17 : "*******************************************************************************"
356 :
357 : END SUBROUTINE band_header
358 :
359 : ! **************************************************************************************************
360 : !> \brief ...
361 : !> \param iw ...
362 : !> \param nr ...
363 : !> \param np ...
364 : ! **************************************************************************************************
365 54 : SUBROUTINE vib_header(iw, nr, np)
366 : INTEGER, INTENT(IN) :: iw, nr, np
367 :
368 54 : IF (iw < 0) RETURN
369 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
370 27 : "*******************************************************************************", &
371 27 : "*******************************************************************************", &
372 27 : "** **", &
373 27 : "** # # # # # # ## **", &
374 27 : "** # # ### # ## ### #### ## # # ### # **", &
375 27 : "** # # # # # ## # # # # # # ## # # # # **", &
376 27 : "** ## # # # # # ## # # # # # # # ## # **", &
377 27 : "** ## # ### # # # ## # ## # # # # ### **", &
378 27 : "** **", &
379 27 : "** ## ## # **", &
380 27 : "** # # # # ### # # # ### ### **", &
381 54 : "** # # ## # # # # # # ## # ## **"
382 : WRITE (UNIT=iw, FMT="(T2,A,T73,I5,1X,A)") &
383 27 : "** #### # # # ## # ### ## # ## N. Replicas:", nr, "**", &
384 54 : "** # # # # # # ### # ### # ### N. Procs/Rep:", np, "**"
385 : WRITE (UNIT=iw, FMT="(T2,A79)") &
386 27 : "** ## **", &
387 27 : "** T. Laino and F. Schiffmann **", &
388 27 : "** 2008 - 2015 **", &
389 54 : "*******************************************************************************"
390 : WRITE (UNIT=iw, FMT="(T2,A79,/)") &
391 27 : "*******************************************************************************"
392 :
393 : END SUBROUTINE vib_header
394 :
395 : ! **************************************************************************************************
396 : !> \brief ...
397 : !> \param iw ...
398 : ! **************************************************************************************************
399 14 : SUBROUTINE sirius_header(iw)
400 : INTEGER, INTENT(IN) :: iw
401 :
402 14 : IF (iw < 0) RETURN
403 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
404 7 : "*******************************************************************************", &
405 7 : "*******************************************************************************", &
406 7 : "** **", &
407 7 : "** #### ## ## #### ##### ##### #### ## #### ## ## ## #### **", &
408 7 : "** ## #### ## ## ## ### ##### ## ## ## # ## ## ## ## **", &
409 7 : "** #### ## # ## ## ## ##### ### ##### ## #### ## ## ## ##### **", &
410 7 : "** ## ####### ## ## ## ### ## ## ## # ## ##### ## **", &
411 7 : "** ## ## # ## #### ## ### #### ## ## # ## ##### #### **", &
412 7 : "** **", &
413 7 : "** SIRIUS: Domain specific library for electronic structure calculations **", &
414 7 : "** **", &
415 14 : "*******************************************************************************"
416 : END SUBROUTINE sirius_header
417 :
418 : ! **************************************************************************************************
419 : !> \brief ...
420 : !> \param iw ...
421 : ! **************************************************************************************************
422 14 : SUBROUTINE tmc_header(iw)
423 : INTEGER, INTENT(IN) :: iw
424 :
425 14 : IF (iw < 0) RETURN
426 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
427 14 : "*******************************************************************************", &
428 14 : "*******************************************************************************", &
429 14 : "** **", &
430 14 : "** ########### ### ### ###### **", &
431 14 : "** ### #### #### ### **", &
432 14 : "** ### ### # # ### ### **", &
433 14 : "** ### ### # ### ### **", &
434 14 : "** ### ### ### ###### **", &
435 14 : "** TreeMonteCarlo Mandes Schoenherr **", &
436 14 : "** 2009 - 2015 **", &
437 14 : "*******************************************************************************", &
438 28 : "*******************************************************************************"
439 : END SUBROUTINE tmc_header
440 :
441 : ! **************************************************************************************************
442 : !> \brief ...
443 : !> \param iw ...
444 : ! **************************************************************************************************
445 6 : SUBROUTINE tmc_ana_header(iw)
446 : INTEGER, INTENT(IN) :: iw
447 :
448 6 : IF (iw < 0) RETURN
449 : WRITE (UNIT=iw, FMT="(/,(T2,A79))") &
450 6 : "*******************************************************************************", &
451 6 : "*******************************************************************************", &
452 6 : "** **", &
453 6 : "** ########### ### ### ###### ## ### ## ## **", &
454 6 : "** ### #### #### ### #### #### ## #### **", &
455 6 : "** ### ### # # ### ### ## ## ## ## ## ## ## **", &
456 6 : "** ### ### # ### ### ###### ## #### ###### **", &
457 6 : "** ### ### ### ###### ## ## ## ### ## ## **", &
458 6 : "** Trajectory analyzer for TreeMonteCarlo ensembles Mandes Schoenherr **", &
459 6 : "** 2013 - 2015 **", &
460 6 : "*******************************************************************************", &
461 12 : "*******************************************************************************"
462 : END SUBROUTINE tmc_ana_header
463 : END MODULE header
464 :
|