grib/src/main/java/ucar/nc2/grib/grib1/tables/EcmwfLocalConcepts.java
private void writeGrib1Tables() throws IOException {
        SimpleDateFormat dateFormat =
                new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
        Calendar cal = Calendar.getInstance();
        String writeDate = dateFormat.format(cal.getTime());
        String grib1Info;
        List<String> tableNums = new ArrayList<>();
        HashMap<String, String> paramInfo;
        Path dir = Paths.get(ecmwfLocalConceptsLoc.replace("sources/", "resources/resources/grib1/"));
        for (String tableNum : localConcepts.keySet()) {
            tableNums.add(tableNum);
            String fileName = "2.98." + tableNum + ".table";
            System.out.println("Writing: " + fileName);
            Path newFile = dir.resolve(fileName);
            Files.deleteIfExists(newFile);
            Files.createFile(newFile);

            try (BufferedWriter writer = Files.newBufferedWriter(newFile, ENCODING)){
                writer.write("# Generated by " + this.getClass().getCanonicalName() + " on " + writeDate);
                writer.newLine();
                for(String paramNum : localConcepts.get(tableNum).keySet()){
                    paramInfo = localConcepts.get(tableNum).get(paramNum);

                    String shortName = paramInfo.get(SHORTNAME_ID);
                    String description = paramInfo.get(DESCRIPTION_ID);
                    String units = paramInfo.get(UNIT_ID);

                    grib1Info = paramNum + " " + shortName + " [" + description + "] (" + units + ")";

                    writer.write(grib1Info);
                    writer.newLine();
                }
            }
        }
        writeLookupTableFile(tableNums, dir, writeDate);
    }
private void writeGrib1Tables() throws IOException {
        SimpleDateFormat dateFormat =
                new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
        Calendar cal = Calendar.getInstance();
        String writeDate = dateFormat.format(cal.getTime());
        String grib1Info;
        List<String> tableNums = new ArrayList<>();
        HashMap<String, String> paramInfo;
        Path dir = Paths.get(ecmwfLocalConceptsLoc.replace("sources/", "resources/resources/grib1/"));
        for (String tableNum : localConcepts.keySet()) {
            tableNums.add(tableNum);
            String fileName = "2.98." + tableNum + ".table";
            System.out.println("Writing: " + fileName);
            Path newFile = dir.resolve(fileName);
            Files.deleteIfExists(newFile);
            Files.createFile(newFile);

            try (BufferedWriter writer = Files.newBufferedWriter(newFile, ENCODING)){
                writer.write("# Generated by " + this.getClass().getCanonicalName() + " on " + writeDate);
                writer.newLine();
                for(String paramNum : localConcepts.get(tableNum).keySet()){
                    paramInfo = localConcepts.get(tableNum).get(paramNum);

                    String shortName = paramInfo.get(SHORTNAME_ID);
                    String description = paramInfo.get(DESCRIPTION_ID);
                    String units = paramInfo.get(UNIT_ID);

                    grib1Info = paramNum + " " + shortName + " [" + description + "] (" + units + ")";

                    writer.write(grib1Info);
                    writer.newLine();
                }
            }
        }
        writeLookupTableFile(tableNums, dir, writeDate);
    }
Write out grib1 tables based on localConcepts files - these are the tables
that the CDM will read.