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 | Intent | Optional | 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 |
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