public static FlagCoding readFlagCoding(ProfileReadContext ctx, String variableName) { final FlagCoding flagCoding = CfFlagCodingPart.readFlagCoding(ctx, variableName); if (flagCoding != null) { final Variable variable = ctx.getNetcdfFile().getRootGroup().findVariable(variableName); final Attribute descriptionsAtt = variable.findAttributeIgnoreCase(FLAG_DESCRIPTIONS); if (descriptionsAtt != null) { final String[] descriptions = descriptionsAtt.getStringValue().split(DESCRIPTION_SEPARATOR); if (flagCoding.getNumAttributes() == descriptions.length) { for (int i = 0; i < descriptions.length; i++) { flagCoding.getAttributeAt(i).setDescription(descriptions[i]); } } } final Attribute nameAtt = variable.findAttributeIgnoreCase(FLAG_CODING_NAME); if (nameAtt != null) { flagCoding.setName(nameAtt.getStringValue()); } } return flagCoding; }