| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | public | :: | npair | = | -lo_hugeint | ||
| integer, | public, | dimension(:), allocatable | :: | i1 | |||
| integer, | public, | dimension(:), allocatable | :: | i2 | 
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | ferromagnetic | = | .false. | ferromagnetic? | |
| logical, | public | :: | coll | = | .false. | collinear or noncollinear | |
| integer, | public | :: | nbin | = | -lo_hugeint | How many bins of different levels of disorder do we want? | |
| integer, | public | :: | nconf | = | -lo_hugeint | How many configurations per bin | |
| integer, | public | :: | nshell | = | -lo_hugeint | number of magnetic coordination shells | |
| type(lo_magdisorder_shell), | public, | dimension(:), allocatable | :: | sh | info about the coordination shells | ||
| integer, | public, | dimension(:,:,:), allocatable | :: | collhistory | history of configurations | ||
| real(kind=flyt), | public, | dimension(:,:,:,:), allocatable | :: | noncollhistory | |||
| integer, | public, | dimension(:), allocatable | :: | initial_collinear_configuration | initial configuration | ||
| real(kind=flyt), | public, | dimension(:,:), allocatable | :: | initial_noncollinear_configuration | |||
| integer, | public, | dimension(:), allocatable | :: | sites | which sites are switchable? | 
| procedure, public :: generate | create the structure | 
| procedure, public :: correlation_function | get the correlation function | 
| procedure, public :: optimize | generate magnetic sqs | 
| procedure, public :: dump_configurations | dump to file | 
get a sphericall random unit vector
make sure an AFM configuration has net magnetic moment of 0
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=flyt), | intent(inout), | dimension(:,:) | :: | x | ||
| logical, | intent(in), | dimension(:) | :: | rel | 
write(,) 'iter:',iter,'ss',tochar(flipatoms)
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lo_magdisorder), | intent(in) | :: | mag | shells and stuff | ||
| type(lo_forcemap), | intent(in) | :: | map | |||
| type(lo_crystalstructure), | intent(in) | :: | uc | |||
| type(lo_crystalstructure), | intent(in) | :: | ss | |||
| integer, | intent(in) | :: | nsubconf | 
calculate the correlation function
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lo_magdisorder), | intent(in) | :: | mag | list of shells and stuff | ||
| integer, | intent(in), | optional | dimension(:) | :: | collconf | current collinear magnetic configuration | 
| real(kind=flyt), | intent(in), | optional | dimension(:,:) | :: | noncollconf | current noncollinear magnetic configuration | 
| real(kind=flyt), | intent(out), | dimension(:) | :: | cf | the correlation function per shell | 
generate optimized configuration
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lo_magdisorder), | intent(inout) | :: | mag | shells and stuff | ||
| type(lo_crystalstructure), | intent(in) | :: | ss | crystal structure | ||
| integer, | intent(in) | :: | nconf | how many configurations do I want in each bin? | ||
| integer, | intent(in) | :: | nbin | how many bins? | 
set up all the coordination shells and stuff
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(lo_magdisorder), | intent(out) | :: | mag | to keep track of all the coordination shells | ||
| type(lo_symlist), | intent(in) | :: | sl | a symmetry table, useful for a bunch of stuff | ||
| type(lo_crystalstructure), | intent(in) | :: | uc | unit cell | ||
| type(lo_crystalstructure), | intent(in) | :: | ss | supercell |