CCSM4.0 Requirements

  • Consistency of module name, module filename and use statement. In order for makdep to work properly, the module name and module filename must be the same "string". In addition, the module filename and use statement must agree with respect to upper/lower case. In general, we recommend use of all lower case chars for these strings. Moving forward, no filenames will be changed. But use statements should be changed to agree with the filename upper/lower case convention. For example, "model_someThing.F90" should have "module model_someThing" in it and be used via "use model_someThing". Note that the case agrees in all instances.
  • I/O Unit numbers. All models should use shr_file_mod; iunit=shr_file_getUnit(), shr_file_freeUnit(iunit) for their I/O unit numbers to eliminate conflicts. NOTE: Once a model reserves a unit number via getUnit, it is unavailable for reuse until freeUnit is called, even if that unit number has already been closed. getUnit has an optional argument that allows the user to request a particular unit number. If that unit number is available, it is returned. If the unit number is not available, abort is called.
  • Log file setup. In general, model log output should go through the model root pe and be directed to a unique filename via a unique unit number. However, unit 6 is still available for use as "standard out" by all models as needed. Individual models can decide which pes are connected to unit 6 versus their unique log file, and which pes write and this choice will likely be dependent on the logging strategy as well as the cost trade-off associated with reducing to the root pe.
  • ggas timeseries. Currently we are using the 1870 value from the current CAM dataset (289.263) as the default 1870 value in env_conf. Before CCSM4.0, we should check the ggas timeseries being used in CAM, to make sure that it is up to date at least through the present.
  • System calls. All system calls should be eliminated including calls to get env variables.

    CCSM4.0 Proposed Requirements

  • Model parallelization. All models should be compiled without information related to pe counts. The scripts and model should be able to adjust to a new pe count at runtime automaticallly without having to reconfigure or rebuild. Namelist should be updated automatically if needed. We want to be able to switch pe layouts and counts with minimal effort.

    CCSM4.0 Current Issues and Tasks (for core developers)

    see http://www.cgd.ucar.edu/cseg/testing/tags/plans_ccsm4
  • No labels