function ANVarToString(var) result(result) use dc_types, only: STRING use dc_string, only: cprintf use an_vartable, only: an_variable_entry, vtable_lookup use an_types, only: AN_VARIABLE implicit none character(string):: result type(AN_VARIABLE), intent(in):: var type(an_variable_entry):: ent if (vtable_lookup(var, ent) /= 0) then result = cprintf("AN_VARIABLE(bad id %d)", i=(/var%id/)) else result = cprintf("AN_VARIABLE(file=%d, var=%d, dim=%d)", & & i=(/ent%fileid, ent%varid, ent%dimid/)) endif end function