Write the normalised fields to netCDF
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | file_id |
NetCDF ID of the file to write to |
||
complex, | intent(in), | dimension(:,:) | :: | phase |
Normalising phase factor (nominally at the outboard midplane) |
subroutine nc_eigenfunc(file_id, phase)
#ifdef NETCDF
use convert, only: c2r
use run_parameters, only: has_phi, has_apar, has_bpar
use fields_arrays, only: phi, apar, bpar
use theta_grid, only: ntgrid
use kt_grids, only: naky, ntheta0
# endif
implicit none
!> NetCDF ID of the file to write to
integer, intent(in) :: file_id
!> Normalising phase factor (nominally \(\phi\) at the outboard midplane)
complex, dimension(:,:), intent (in) :: phase
# ifdef NETCDF
complex, dimension(-ntgrid:ntgrid, ntheta0, naky) :: tmp
integer :: ig
call netcdf_write_complex(file_id, "phase", phase, [complex_dim, kx_dim, ky_dim], long_name="Normalising phase")
if (has_phi) then
do ig = -ntgrid, ntgrid
tmp(ig,:,:) = phi(ig,:,:)/phase(:,:)
end do
call netcdf_write_complex(file_id, "phi_norm", tmp, final_field_dims)
end if
if (has_apar) then
do ig = -ntgrid, ntgrid
tmp(ig,:,:) = apar(ig,:,:)/phase(:,:)
end do
call netcdf_write_complex(file_id, "apar_norm", tmp, final_field_dims)
end if
if (has_bpar) then
do ig = -ntgrid, ntgrid
tmp(ig,:,:) = bpar(ig,:,:)/phase(:,:)
end do
call netcdf_write_complex(file_id, "bpar_norm", tmp, final_field_dims)
end if
# endif
end subroutine nc_eigenfunc