This program includes the interpolation routine used by ALPS to fill a grid in momentum space. It is based on the polyharmonic spline algorithm as described in the ALPS code paper.
| Type | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|
| double precision, | allocatable, dimension (:) | :: | grid_coarse | 
                 Coarse input grid for interpolation. (1:n_coarse)  | 
        ||
| double precision, | allocatable, dimension (:) | :: | pperp_coarse | 
                 Coordinates of perpendicular momentum on coarse grid. (1:n_coarse)  | 
        ||
| double precision, | allocatable, dimension (:) | :: | ppar_coarse | 
                 Coordinates of parallel momentum on coarse grid. (1:n_coarse)  | 
        ||
| double precision, | allocatable, dimension (:,:) | :: | grid_fine | 
                 Fine output grid after interpolation. (0:nperp,0:npar)  | 
        ||
| double precision, | allocatable, dimension (:,:) | :: | pperp | 
                 Coordinates of perpendicular momentum on fine output grid. (0:nperp,0:npar)  | 
        ||
| double precision, | allocatable, dimension (:,:) | :: | ppar | 
                 Coordinates of parallel momentum on fine output grid. (0:nperp,0:npar)  | 
        ||
| double precision | :: | smoothing | 
                 Smoothing parameter for spline interpolation.  | 
        |||
| double precision | :: | pperp_min | 
                 Minimum perpendicuar momentum.  | 
        |||
| double precision | :: | pperp_max | 
                 Maximum perpendicular momentum.  | 
        |||
| double precision | :: | ppar_min | 
                 Minimum parallel momentum.  | 
        |||
| double precision | :: | ppar_max | 
                 Maximum parallel momentum.  | 
        |||
| double precision | :: | threshold | 
                 Lower treshold for f0-values (coarse grid) to be included.  | 
        |||
| double precision | :: | mult_pperp | 
                 Scaling factor for perpendicular momentum.  | 
        |||
| double precision | :: | mult_ppar | 
                 Scaling factor for parallel momentum.  | 
        |||
| double precision | :: | mult_f | 
                 Scaling factor for f0.  | 
        |||
| double precision | :: | r_pperp | 
                 Read-in variable for perpendicular momentum.  | 
        |||
| double precision | :: | r_ppar | 
                 Read-in variable for parallel momentum.  | 
        |||
| double precision | :: | r_f | 
                 Read-in variable for f0.  | 
        |||
| double precision | :: | pperp_max_set | 
                 Forced maximum perpendicular momentum for output.  | 
        |||
| double precision | :: | pperp_min_set | 
                 Forced minimum perpendicular momentum for output.  | 
        |||
| double precision | :: | ppar_max_set | 
                 Forced maximum parallel momentum for output.  | 
        |||
| double precision | :: | ppar_min_set | 
                 Forced minimum perpendicular momentum for output.  | 
        |||
| integer | :: | nperp | 
                 Number of perpendicular steps on fine output grid.  | 
        |||
| integer | :: | npar | 
                 Number of parallel steps on fine output grid.  | 
        |||
| integer | :: | n_coarse | 
                 Number of entries in coarse grid.  | 
        |||
| integer | :: | mode | 
                 Format of input grid (order pperp/ppar).  | 
        |||
| integer | :: | i | 
                 Index for loops.  | 
        |||
| integer | :: | j | 
                 Index for loops.  | 
        |||
| integer | :: | io_error | 
                 Error flag for i/o.  | 
        |||
| integer | :: | status_read | 
                 Status flag for i/o.  | 
        |||
| integer | :: | i_coarse | 
                 Index to loop over the coarse grid entries.  | 
        |||
| character(len=256) | :: | filename | 
                 File name of input file for interpolation.  | 
        |||
| character(len=256) | :: | output_file | 
                 File name of output file in ALPS distribution format.  | 
        |||
| logical | :: | out_to_file | 
                 Check whether output should be written to file.  | 
        |||
| logical | :: | do_normalize | 
                 Check whether normalisation should be applied.  | 
        |||
| integer | :: | unit | 
                 Unit variable for opening namelist.  | 
        |||
| integer, | parameter | :: | stdout_unit | = | 6 | 
                 Stdout unit for opening namelist.  | 
        
| integer, | save | :: | input_unit_no | 
                 Unit index for opening namelist.  | 
        ||
| integer, | save | :: | error_unit_no | = | stdout_unit | 
                 Error unit for opening namelist.  | 
        
| character(len=500) | :: | runname | 
                 String for parameter input file.  | 
        |||
| character(len=500) | :: | foldername | 
                 String for parameter input folder.  | 
        
This function checks whether a unit number exists. It is taken from the AstroGK code.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | nml | 
 Namelist identifier.  | 
        ||
| logical, | intent(out) | :: | exist | 
 Flags whether input unit exists.  | 
        
Unit number.
This function returns a unit number for a namelist. It is taken from the AstroGK code.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | nml | 
 Namelist identifier.  | 
        
Unit number for namelist.
This subroutine reads in system parameters input file (namelist) as argument after executable:
 ./interpolate input.in
This subroutine returns an available unit number. It is taken from the AstroGK code.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(out) | :: | unit | 
 Unit number.  | 
        
Get runname for output files from input argument.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=500), | intent(out) | :: | runname | 
 Basename for file I/O.  | 
        ||
| character(len=500), | intent(out) | :: | foldername | 
 Directory in which input file is stored.  |