Why subtree for CIME?
Very early in ACME, we decided that we want developers to get a working version of the code with a single "git clone" command. For that reason, we use subtree to maintain CIME within ACME because CIME must be present for building/running the model. Submodule requires an additional command after the git clone.
Terms
"the fork" refers to ACME's fork of CIME: https://github.com/ACME-Climate/cime (no longer used)
"the upstream repo" refers to ESMCI CIME: https://github.com/ESMCI/CIME
...