ncfile_put_char Subroutine

public subroutine ncfile_put_char(sf, varname_in, dimid, def_put_mode, char_in)

define and put a char to the netCDF file as a string NOTE: This is only used for naming coordinate directions with a single character

Type Bound

t_ncfile

Arguments

Type IntentOptional Attributes Name
class(t_ncfile), intent(inout) :: sf

self

character(len=*), intent(in) :: varname_in

name of the variable

integer, intent(in) :: dimid

ids of dimensions, must be created before by put_dim

integer, intent(in) :: def_put_mode

1:"def" or 2:"put" mode

character(len=*), intent(in) :: char_in

double input


Calls

proc~~ncfile_put_char~~CallsGraph proc~ncfile_put_char t_ncfile%ncfile_put_char proc~mpi_check_single_access mpi_check_single_access proc~ncfile_put_char->proc~mpi_check_single_access

Called by

proc~~ncfile_put_char~~CalledByGraph proc~ncfile_put_char t_ncfile%ncfile_put_char proc~writedatatonetcdf WriteDataToNETCDF proc~writedatatonetcdf->proc~ncfile_put_char

Source Code

  SUBROUTINE ncfile_put_char(sf,varname_in,dimid,def_put_mode,char_in)
        ! MODULES
    IMPLICIT NONE
    !-------------------------------------------------------------------------------------------------------------------------------
    ! INPUT VARIABLES
    CHARACTER(LEN=*),INTENT(IN) :: varname_in  !! name of the variable
    INTEGER,INTENT(IN)          :: dimid !! ids of dimensions, must be created before by put_dim
    INTEGER,INTENT(IN)          :: def_put_mode  !! 1:"def" or 2:"put" mode
    CHARACTER(LEN=*),INTENT(IN) :: char_in   !!  double input
    !-------------------------------------------------------------------------------------------------------------------------------
    ! OUTPUT VARIABLES
    CLASS(t_ncfile),INTENT(INOUT):: sf    !! self
    ! LOCAL VARIABLES
    INTEGER    :: varid
    !===============================================================================================================================
    CALL mpi_check_single_access()
#if NETCDF

    SELECT CASE(def_put_mode)
    CASE(1) !def
      sf%ioError = nf90_def_var(sf%nc_id, varname_in,NF90_CHAR,dimid,varid)
      CALL sf%handle_error("define String'"//TRIM(varname_in)//"'")
    CASE(2) !put
      sf%ioError = nf90_INQ_VARID(sf%nc_id, TRIM(varname_in), varid)
      CALL sf%handle_error("find varid of string'"//TRIM(varname_in)//"'")
      sf%ioError = nf90_put_var(sf%nc_id, varid,char_in)
      CALL sf%handle_error("write string '"//TRIM(varname_in)//"'")
    END SELECT !CASE(def_put_mode)
#else
  CALL abort(__STAMP__,&
      "cannot write string, BUILD_NETCDF=OFF")
#endif /*NETCDF*/
  END SUBROUTINE ncfile_put_char