Octopus
program.F90
Go to the documentation of this file.
1!! SPDX-FileCopyrightText: 2026 Octopus Developers
2!! SPDX-License-Identifier: GPL-3.0-or-later
3
4#include "global.h"
5
6program octopus
7 use iso_fortran_env, only: error_unit
8 ! main program
10 ! Utils
18 use help_main_oct_m, only: help_main
29#ifdef HAVE_WANNIER90
31#endif
33
34 implicit none
35
36 integer :: n
37 character(len=:), allocatable :: name
38
39 call get_command_argument(0, length=n)
40 allocate(character(len=n) :: name)
41 call get_command_argument(0, name)
42 name = name(index(name, '/', back=.true.) + 1:)
43
44 select case (name)
45 case ('octopus')
46 call octopus_main()
47 case ('oct-casida_spectrum')
49 case ('oct-center-geom')
50 call centergeom_main()
51 case ('oct-conductivity')
53 case ('oct-convert')
54 call convert_main()
55 case ('oct-dielectric-function')
57 case ('oct-floquet')
58 call floquet_main()
59 case ('oct-harmonic-spectrum')
61 case ('oct-help')
62 call help_main()
63 case ('oct-infrared_spectrum')
64 call infrared_main()
65 case ('oct-local_multipoles')
67 case ('oct-oscillator-strength')
69 case ('oct-photoelectron_spectrum')
71 case ('oct-propagation_spectrum')
73 case ('oct-spin_susceptibility')
75 case ('oct-tdtdm')
76 call tdtdm_main()
77 case ('oct-unfold')
79 case ('oct-vibrational_spectrum')
80 call vibrational_main()
81 case ('oct-wannier90')
83#ifdef HAVE_WANNIER90
84 case ('oct-wannier90lib')
85 call wannier_main()
86#endif
87 case ('oct-xyz-anim')
88 call xyzanim_main()
89 case default
90 write(error_unit, '(a)') "Unknown program name '" // name // "'. Known names:"
91 write(error_unit, '(2x,a)') 'octopus'
92 write(error_unit, '(2x,a)') 'oct-casida_spectrum'
93 write(error_unit, '(2x,a)') 'oct-center-geom'
94 write(error_unit, '(2x,a)') 'oct-conductivity'
95 write(error_unit, '(2x,a)') 'oct-convert'
96 write(error_unit, '(2x,a)') 'oct-dielectric-function'
97 write(error_unit, '(2x,a)') 'oct-floquet'
98 write(error_unit, '(2x,a)') 'oct-harmonic-spectrum'
99 write(error_unit, '(2x,a)') 'oct-help'
100 write(error_unit, '(2x,a)') 'oct-infrared_spectrum'
101 write(error_unit, '(2x,a)') 'oct-local_multipoles'
102 write(error_unit, '(2x,a)') 'oct-oscillator-strength'
103 write(error_unit, '(2x,a)') 'oct-photoelectron_spectrum'
104 write(error_unit, '(2x,a)') 'oct-propagation_spectrum'
105 write(error_unit, '(2x,a)') 'oct-spin_susceptibility'
106 write(error_unit, '(2x,a)') 'oct-tdtdm'
107 write(error_unit, '(2x,a)') 'oct-unfold'
108 write(error_unit, '(2x,a)') 'oct-vibrational_spectrum'
109 write(error_unit, '(2x,a)') 'oct-wannier90'
110#ifdef HAVE_WANNIER90
111 write(error_unit, '(2x,a)') 'oct-wannier90lib'
112#endif
113 write(error_unit, '(2x,a)') 'oct-xyz-anim'
114 deallocate(name)
115 stop 1
116 end select
117
118 deallocate(name)
119
120end program octopus
121
122!! Local Variables:
123!! mode: f90
124!! coding: utf-8
125!! End:
subroutine, public casida_spectrum_main()
subroutine centergeom_main()
Definition: centergeom.F90:111
subroutine, public conductivity_main()
This utility runs in parallel and can be used for post-processing of the results of Output.
Definition: convert.F90:95
subroutine, public convert_main()
Definition: convert.F90:136
A utility used to obtain the dielectric function from a kick calculation using the gauge field approa...
subroutine, public dielectric_function_main()
subroutine, public floquet_main()
Definition: floquet.F90:132
subroutine, public harmonic_spectrum_main()
subroutine, public help_main()
Definition: help.F90:109
subroutine, public infrared_main()
Definition: infrared.F90:117
subroutine, public local_multipoles_main()
subroutine, public octopus_main()
Definition: main.F90:120
Exported library interface.
Definition: octopus.F90:24
subroutine, public oscillator_strength_main()
subroutine, public propagation_spectrum_main()
subroutine, public spin_susceptibility_main()
subroutine, public tdtdm_main()
Definition: tdtdm.F90:136
subroutine, public unfold_main()
Definition: unfold.F90:148
subroutine, public vibrational_main()
subroutine, public wannier90_interface_main()
Construct maximally-localised Wannier functions through API calls to Wannier90 library.
Definition: wannier.F90:96
subroutine, public wannier_main()
Definition: wannier.F90:137
subroutine, public xyzanim_main()
Definition: xyzanim.F90:114
int true(void)