diff --git a/ccpp/framework b/ccpp/framework index 47a5f65ae..64b5afd13 160000 --- a/ccpp/framework +++ b/ccpp/framework @@ -1 +1 @@ -Subproject commit 47a5f65ae6b760b513d7babfbe66138a8f4a23bc +Subproject commit 64b5afd1352d709f3b72734bf960e36024a838d3 diff --git a/ccpp/physics b/ccpp/physics index b8b7c3154..aae0d5f28 160000 --- a/ccpp/physics +++ b/ccpp/physics @@ -1 +1 @@ -Subproject commit b8b7c3154b633a372c79a09c556e54743f0d2c7e +Subproject commit aae0d5f281f4f9f41fa8287ac326823a9910207f diff --git a/scm/data/physics_input_data/sfc_emissivity_idx.txt b/scm/data/physics_input_data/sfc_emissivity_idx.txt new file mode 100644 index 000000000..f270353f6 --- /dev/null +++ b/scm/data/physics_input_data/sfc_emissivity_idx.txt @@ -0,0 +1,811 @@ +SURFACE EMISSIVITY INDEX, IDM,JDM: 360 180 NOTE: DATA FROM N TO S +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11177777777711111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111177 +77777777777777755511111111111111177717777777777777777777711111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111177777777777777777777777771111777777717777777777777 +77777777777777777717777777711111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111777711111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111777755111551157 +77777777777117777777777777777777777777777777777777777755555777711111111111111111 +11111111111777777771177777111111111111111111111111111111111111111111111111111111 +11111111111111777777111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111115555577771777777777711111111117777777777777777777777777 +77777777777777777777711111111111111111111111111111111773377117111111111111111111 +11111111111111111111111111111111111111111111111111111111111155555111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111115111111555511551115557115555577 +77777111755577777777777777777777777777777777777777777777777111111111111111111111 +11111111111111137711111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111551111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +15151115511111111111111111111111551555577711111111177577777777777777777777777777 +77777777777777777733111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111117755111111111111111111111111111111133555555555311111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111755151111111511111115155115515551515715157 +71111111111777777777777777777777777777777777777777777777777711111111111111111111 +11111111111111111111111111111111111111111111111111111111177777711111111111111111 +11111111115555555553555555555555531111111111111111111111155555555155111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11155555555555111111551155115555555777771111111111111111111111777777777777777777 +77777777777777777773311111111111111111111111111111111111111111111111111111111111 +11111111111111175551111111111111111111111111111355553555555555333333335311111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111311111111311111111111111111111111111111111 +11111111111111111111111177777777777777777777777777777777777311111111111111111111 +11111111111111111111111111111111111111111111111111111135511111111111111111111111 +13333333555333553333333333333333333333111111331311111111111115511111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111113333 +33331111111111111115551155555113331133137771111111111111111111117777777777777777 +77777777777777733331111111111111111111111111111111111111111111111111111111111111 +11111111111113531111111111111333311311111335533333333333333333322333333333333333 +33333333311111111111333331111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111333333133333313313331115555511511113333133331 +11377111111111111111111133777777777777777777777777777733331111111111111111111111 +11111111111111111111111111111111111111111111111111113333111111111111333311333333 +33333333333333333322222233333332232223233323333231113313313133333333331111111111 +11111111111111111111551111111111111111111111111111111111111111111111111111113331 +11333333333333311111131133311133333333333333355511111111111111111317777777777777 +77777777777777333311111111111111111111111111111111111111111111113333331111111111 +11111111111111111111111111133333313333333331333322232232333332322223333222222222 +22222223333322333323222333333333333333331111111111111111111111111111111111111111 +33333333333311111111111111111111111111111111333333333333311111113333111333333333 +33333775775111111111111111333377777777777777777777777731331111111111111111111111 +11111111111111111133333333336633111111111111111111111111111133331111333331333333 +33332366663333333332322223223222222222222222222233322222333323323222222322223333 +31333333111333333311111111111111111113333333333333333323322331111333333333131333 +11113333333331333311133111333111111333111111333333751111111111111133137777777777 +77777777777777771111111111111111111111111111111111111113333333633333366666223311 +11113311111113133333333333331333311331333332332222333333333322222222222222222222 +22222223333222222333322222222222222222222222223333333333333333111111111111333222 +33333333333222226663333332332233333333333333311111111331111111331133333311333311 +11111133333311111111111111133777777777777777777777771111111111111111111111111111 +11111111111111133333666666666666666626233111311123222233333333333332333311333232 +33322222222233333332222222222222222222222222222332222222223322222222222222222222 +22222332333333333333333331111111111133336663222666666666636322233223222222223333 +33333333333133333333333313333333133333311113311333333775111111111133337777777777 +77777771111111111111111111111111111111111111111111111333333666666666666666616663 +11313633666666662266622366222222133322222222226622222322332222222222222222222222 +22222223322222222333332233322222223222222332322233333333333333333133311111131133 +33666666666666666663332232222222222231112223333333333333333333333333333333333111 +11111133313333737511111111333377777777777777771111111111111111111111111111111111 +11111111111133336666661116666666666111116666666666666666666663326666666636632263 +63266666662222322322222222222222222222222222222233223222222333233323322222222222 +22233322223333333333113133333111133333363663666666366666666633332222222222222111 +22222333333333333333333333333333313111111111113333333113311111111113377777777777 +11111111111111111333333333111111111111111111111111166366666661116666666666611666 +66666666666666666663666666666633363336366666666666666222222222222222222222222222 +22222222233333333333222223332222222222323223222322322233331111111131111111331313 +36366666666666662666633333333323222622222222223333333333333333333333333311333311 +11333333333333311111111111113377777777711111111111111111113333773311111111111111 +11111111666366666666116666666666666666666666666666666666666663662666633333663366 +66666666666666622222666666666666666666666666666666666622232332222223222222232233 +33333322222332233331111111111111111111666666666662222222666222222222223322226222 +22222223333333333333333333333111113311111111111133333331111111111111177777777771 +11111111111111111111331111111111111111111111116333636666661112266666616666616666 +66666666666666666666666666633633333333363636666666666666666666666666666666666666 +66666666666666666233333223222222222323332222222332333332312111111111111111133626 +66266662266236622662232222222233333266222222222211223333333333333331111111111311 +11311111111333111111111111111177777777111111111111111111111111111111111111111111 +11111633366666666111116666166661166616666666666666666666666666666662232333666663 +66336666666666666666666666666666666666666666666666666666622333333333222223333111 +33112233332321111111111111111111113333636266662766627722227222222222222323222666 +66661112222222333333333333111111111111111133333311111111111111111111111377777711 +11111111111111111111111111111111111111111111163336666666661111226626666616666666 +66666666666666622666666663666666666666666666666666666666666666666666666666666666 +66666666666666666222222222332223232111111123222313311111111111111111111111133333 +33663622162711667777772222222666662366666666666622222222332223333111111111111111 +11333333331111111111111111111111113371111111111111111111111111111111111111111111 +11111636622266662221111111661666666666666666666666666666666666666363666636636666 +26666663666666666666666666666666666666666666666666666666666622222226611622211111 +23211111111111111111111111111111111111332663321166111111111117722322222266266666 +36663633661633333322233331111111111111111133333333111133111111111111111111111111 +11111111111111111111111111111111111111111111112661166266611111161666166666666666 +66666266626626666666666666336663336666666666666666666666666666666666666666666666 +66666666666666666666611111111111111111132211111111111111111111111111111111111111 +11133211111111111111111776722322363366666662666332333366332222223331111111111111 +11333333333313333111111111111111111111111111111111111111111111111111111111122111 +11111111111122666161116166666666666666622266666666666666666666666666636666636366 +66666666666666666666666666666666666663663666666336666666666611111111111111111332 +33211111111111111111111111111111111111111133112111111111111111116617232323233666 +66666366666333336122666633331111111111111113333333322223331111111111111111111111 +11111111111111111111111111111111112222111111111166111666111113666222662666662226 +62626666666666666226666666666666666666633666666666666262666666666666633663666333 +36666636666636666611111111111111111133233231111111111111111111111111111111111111 +22111111111111111111111111162222333236666666666636636666666666666333333311111111 +11133333333222333311111111111111111111111111111111111111111111111111111111222211 +11111111221212111111166666622222226666666666626666662226662622222222222222222222 +22222226622266226666666666666136366666666666666666636666111111111111111111113336 +22111111111111111111111111111111111113361111111111111111111111111116662222222266 +62666663666366666666666666663333331111111112223332322233333311111111111111111111 +11111111111111111111111111111111111222111111111112111111122122222266666222626222 +66622262226222226666222222222222222222222222222666622666666626666666612666626666 +22666666666666666111111111111111111136662211111111111111111111111111111111111111 +11111111111111111111111111111166262266226666666266366666336666666666666333333311 +13222222222232232222221111111111111111111111111111111111111111111111111222112221 +11111112222222666262666666666666626666222266266662222222266222222222222222222222 +22262266662226663666666266611636666666666666666666666636666661611111111111113663 +11111111111111111111111111111111111111111111111111111111111111111116116666666666 +22666622222666636661616666666666633333111222222222222223222622231111111111111111 +11111111111111111111111111111122221112222211122226222626626262626666666622662222 +22222262222222222622222222222222222222222222226666666666666636666616626666662666 +62222666666666366666316111111111111132211111111111111111111111111111111111111111 +11111111111111111111111111111111622266666226662222222222266661166666666663333311 +16626662222222326222222611111111111111111111111111111111111111111111112222112222 +21112222666222666666266666666662222222222222222222222222222222222222222222222226 +22222266666266266626666666666666662266222222226666666666666661611111111111111211 +11111111111111111111111111111111111111111111111111111111111111111111111162332266 +66226222222222222226666666666666633333331336666626666666666666631111111111111111 +11111111111111111111111111111121111122221222222626226222226226666266666222226222 +22222222222222222222222222222222222222222226666663222222662666666222666666222222 +22226662266666666666616611111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111666626222663362222222222222222226666666666363666 +66366666666666666636111211111111111111111111111111111111111111111111111111122111 +22222226222662222226266262222222332222222222222222222222222222222222222222222222 +22222663322222222622222622266666222222222226626222666666266661661111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111666622 +26622622222222222222222266666661666666666666666666666111611111266611111111111111 +11111111111111111111111111111111111111222222622262222226226662666222222222222222 +22222222222222222222222222222222222222222222226622222222222262222226662222222222 +22262226666626666666116111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111616662666662222222222222222222666666111666666 +66666666666666661111122222111111111111111111111111111111111111111111111111122222 +22222222666626662222222226222222222222222222222222222222222225522222222222222226 +62222222222222222222662222222222222222222222222662666626666111611111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111116666 +22266262222222222222222266626111111666666666666666666661111111116661111111111111 +11111111111111111111111111111111111112222222262622266662222222662662222122221122 +22222222221112222222125222222222222222222225522522222222222222222222222222222222 +22222226622666266611116111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111166622222666626222222222222222662666661666666 +66666662266666611116111111111111111111111111111111111111111111111111111111111122 +26622266222221622222226666622311122112222222222211111222222112522222222222222222 +22222255522222222222222222222222222222222222222666266266611111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111116262 +26226222262222222222222222222266211611116666222666666666666111111111111111111111 +11111111111111111111111111111111111111126666626266621116666226622222211111111166 +66222221111222222211122222222225522252222222222555225522222222222222222222222222 +22222226622226661111116111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111166626622622266222222222222222262222211266122 +22622662622611661111111111111111111111111111111111111111111111111111111111111116 +22622221112222116666662222621111111111112226622211122222222222222222222225222222 +22222222552522555522222222222222222522222222222666662661111112666111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111116662 +22222222262222222222222222222222112221222112262222111111111111111111111111111111 +11111111111111111111111111111112662111266621111112122611116666666622111111111111 +16622222111122222222222522225222222222222222222255555555222552222222222222222226 +62222266622111111111666211111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111666662222222226222222222222222222222211222221 +22222222211111111111111111111111111111111111111111111111111111111111111266222226 +22211111111112221116626626221111222611111222222221111155222222225222525222222222 +55522225555555555255525222222222222266662222266666111111111161111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111116662 +22222252222222222222222222222222222221666662662221111111111111111111111111111111 +11111111111111111111111111111116622222226111111122111112221222221121122662226222 +66622622221115555222222525222255222222522555554444224442222255522225222222222666 +21222266611111111111661111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111162622222225222222222222222222222222222222222 +22222211111111111111111111111111111111111111111111111111111111111111111622222626 +11111111221111112111262111222222222222222222222221111222222222222555252225555225 +55555544244444442222255552222222222222211121126211111111111162111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111112226 +22222222622222622222222222222222222222666222261111111111111111111111111111111111 +11111111111111111111111111111112222222221111111111111111111112221112222222222222 +22222222211111522222222222552552224525552555544222244422222222255222222222222211 +11111226111111111116611111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111112266222222222226262222222222222222226222666 +62622111111111111111111111111111111111111111111111111111111111111111111222222222 +11111111111112211111126111122222222222222222212222111122222222222225222222455555 +55555225555222222222222222222222222222212211112221111111116661111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111222 +62222222222266622222222222226222222266662666111111111111111111111111111111111111 +11111111111111111111111111111112222222211222222222211111111111111111162122112222 +22222222226626622222222222222222222555555555525555552522222222222222222222222222 +21111122211111116662211111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111222622222222222662222222222626222222262222 +26261111111111111111111111111111111111111111111111111111111111111111111111211111 +22222222222111111111111111111111111122222222222222222222222222222222222222222555 +55555555555552222522222222222222222222221111112221111666666221111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111112 +22222222222222222222222222622222226262226222111111111111111111111111111111111111 +11111111111111111111111111111111112111122222255555211111111111111111111121112222 +55222222222225552522222222222222226222555555555555555222522552262222222222222222 +11111121111666266111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111112222222222222222222222226662222622222222 +22211111111111111111111111111111111111111111111111111111111111111111111112222222 +25555555552111111111111111111111111222222222222222222222522222222222222222662225 +55555555555522552225222266666622222222222111111111266611111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11222222226622222222222226662262622222226111111111111111111111111111111111111111 +11111111111111111111111111111111222222225544444455522221111122211111111111122222 +22552222222222225222222222222222222262222555555555555552222222262222662226666666 +21111111116611111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111112222222222222222222226666222222222266 +11111111111111111111111111111111111111111111111111111111111111111111111222222225 +54444444444555251111252225511122112225555555522222222222255225555522222522226622 +25555555555555222225226626666262266662666211111111611111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11122222222222222222222266666626622226611111111111111111111111111111111111111111 +11111111111111111111111111111122222555544444444444225522255154444225225225552255 +55555555222222222255255555222552222226662225555555225555222252622666266222266622 +21111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111211222222222222222266662666666622661 +11111111111111111111111111111111111111111111111111111111111111111111112255555544 +44444444444555222222254424442252255522445444555511222222222222422222222222222226 +66222222222222662225226666266662266666666611111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111212222222222222226222112611111112611111111111111111111111111111111111111111 +11111111111111111111111111111152255554444444444444455444444444444444444522525444 +54444555111222222222222442242224422422226662222222222666666666666626666666622666 +66111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111112122222222222222221111111111111661 +11111111111111111111111111111111111111111111111111111111111111111111155225554444 +44444444445555444444444444444444521155554444555551112222222522222222244442222222 +26666666666666666666666666666662262266666111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111222122222222222222111111111111116221111111111111111111111111111111111111111 +11111111111111111111111111122222555544444444444445555544444444444444444445115255 +55445555551111111222222222224444422222226666662666666666666666666666666226666666 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111211222222222222211111111111111162 +11111111111111111111111111111111111111111111111111111111111111111152255555544444 +44444444455544444444444444444444452115555555555555551115115544442222222222222622 +26666666626666666666666626666666666666661111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111211222222222222111111111111111121111111111111111111111111111111111111111 +11111111111111111111111115225555554444445444444555544444444444444444444445511525 +55554445555511555111111111122222662222622266222262226666666666626666226226666611 +16111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111121112222222222111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111225555444444444 +45444225555444444444444444444444445511555555444444555555222111111111222222222266 +66666222222266626666666666666666666661116611111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111121112222222221111111111111111111111111111111111111111111111111111111111 +11111111111111111111111125554444444444445555555444444444444444444444444444551112 +55554444444455552222111111111222222266666666222222226666266666666666666662611111 +61111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111122222262111111111111112122 +21111111111111111111111111111111111111111111111111111111111111125442444444444444 +44444444444444442222444444444444444551154555444444444445555111111111112222226626 +62226661111126626666666662261221111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111122222266111111112611111111221111111111111111111111111111111111111 +11111111111111111111111222542444444444444222444444444444422444444444444444455111 +25544444444444445551111111111111162222266666622111112662666666666221111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111162222222611111122261111111 +11222111111111111111111111111111111111111111111111111111111111122422444444444444 +42244444444444444444444444444444444521111554444444444444521111111111111116222266 +66666111111111626666666662111221111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111211111111111111111111111111111111111 +11111111111111166222222211111666211111111111111666111111111111111111111111111111 +11111111111111111111111122224444444444454244444444444444444444444444444445552211 +12225444444244522111111111111111162222226662111111111162666222666211121111111111 +16111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111222222222166666611111111 +11211116666116111111111111111111111111111111111111111111111111112244244444444445 +55444555444444442444222244444444455525211122244442222221111111111111111116222222 +66611111111111622662262266611111111111116611111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111112222666666666111111111111111111111111111111111111111111111111 +11111111111111111111111122222544444445525555555555445555554452444444444222552261 +11122544222221111111111111111111162222222211111111111122266226262266111111111111 +66111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111112626222666611111111 +11111111111111111111111111111111111111111111111111111111111111122225444444552555 +22255555555555445555524444444422222222651116225222221111111111111111111111622222 +11111111111111111166666662266111111111112611111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111166666666611111111111111111111111111111111111111111111 +11111111111111111111111222255555522225552222225525522255522222222222222222222222 +51126222211111111111111111111111116222221111111111111111116226622626211111111111 +16111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111666666666111 +11111111111111111111111111111111111111111111111111111111111111122222222222222222 +22222222222221155222222222222222222222265212222111111111111111111111111111162222 +11111111111111111166266222222111111111111116111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111166666661111111111111111111111111111111111111111111 +11111111111111111111111222222222222222222222222222222222222222222222222222222222 +55511111111111111111111111111111111626221111111111111111111611622622211111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111112261111 +11111111111111111111111111111111111111111111111111111111111111122222222222222222 +22222222222222222222222222222222222222222521111111211111111111111111111111116222 +11111111111111111116111622222111111111111161611111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111611111111111611611111111111111111111111111111 +11111111111111111111111122266222222222222222222222222622222222222222222222222222 +22221222222111111111111111111111111162221111111111111111116111162221111111111111 +11161111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111666111 +11112266226666116161111111111111111111111111111111111111111111111226622222222222 +22222222222222222262222222222222222222222222222222211111111111111111111111112221 +61111111111111111161111112111111111111111116111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111166112111226616666666666111111111111111111111 +11111111111111111111111111222222222222226222222222222222222222222222222222222222 +22222222221111111111111111111111111112116111111111111111116611111111111111111111 +11166611111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111666 +16666666666222222266111111111111111111111111111111111111111111111112222222222222 +62226622222222222222222222222222222622222222222222111111111111111111111111111111 +66111111111111111116111111111111111111111161666111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111161166666666222266226661111111111111111111 +11111111111111111111111111126662262266622226666626222222222222266222222222222222 +22222222211111111111111111111111111111116611111111111111111166111111111111116611 +11116611111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11666662622226666666661111111111111111111111111111111111111111111111126266666666 +11111666666666262226262662222222222222222222222221111111111111111111111111111111 +11111111111111111111666111111111111166611111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111116666662226666662266666221111111111111 +11111111111111111111111111111126666666661111116616666622226266622222222222222222 +22222222111111111111111111111111111111111111111111111111661116661111111111666611 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11162622222266666622266666661111111111111111111111111111111111111111111161111111 +11111111116666666662266666662222222222222222222111111111111111111111111111111111 +11111111111111111661166111111111166666111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111116666222666666666222626266611111111111 +11111111111111111111111111111111111111111111111111666666666666666666662222222222 +22222211111111111111111111111111111111111111111111111111116611661111111666666611 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11666666666666666666262266666111111111111111111111111111111111111111111111111111 +11111111116666666666666666666622222222222222211111111111111111111111111111111111 +11111111111111111116661611111666666666611111611611111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111666666666666666666666666666621111111111 +11111111111111111111111111111111111111111111111116666666666666666666662222222222 +22221111111111111111111111111111111111111111111111111111111666661111166666666611 +66661111611111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +66666666666666666666666666662211111111111111111111111111111111111111111111111111 +11111111166666626666666666666222112622222211111111111111111111111111111111111111 +11111111111111111111266611111666666666111111111111116111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111166266666666666666666666666666662261111111 +11111111111111111111111111111111111111111111111116662226666666666666622211222222 +22111111111111111111111111111111111111111111111111111111111116666111116666666116 +66111111111666111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111116 +22666666666666666666666666666666666111111111111111111111111111111111111111111111 +11111111116666222266666666666222122222222111111111111111111111111111111111111111 +11111111111111111111166666611166666661166611111111116661666661111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111126266666666666666666666666666666666662111 +11111111111111111111111111111111111111111111111111162622266666666266622222222222 +11111111111111111111111111111111111111111111111111111111111111666611111111661116 +16111161166116666666666611111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111112 +26666666666666666666666666666666666626222111111111111111111111111111111111111111 +11111111111162262662666622222222222222211111111111111111111111111111111111111111 +11111111111111111111111666111111111111161161111111111111666666666611111161111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111126666666666666666666666666666666666622222 +22111111111111111111111111111111111111111111111111116622662226222222212222222221 +11111111111111111111111111111111111111111111111111111111111111116611111111111111 +11111111111111111166666666111666111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111112 +26666666666666666666666666666666622222222222211111111111111111111111111111111111 +11111111111122222626262222222122222222211111111111111111111111111111111111111111 +11111111111111111111111111222111111111111111111111111161116662666666111111161111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111122262666666666666666666666666222622222622 +22222111111111111111111111111111111111111111111111111222262226222222222222222221 +11111111111111111111111111111111111111111111111111111111111111111116222222111111 +11111111111111111166666666611111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +22666666666666666666666666662262222222222222211111111111111111111111111111111111 +11111111111112622222222222222222222222211111111111111111111111111111111111111111 +11111111111111111111111111111111126126616111166111111111111162661166111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111226666666666666666666662666222222222222 +22222111111111111111111111111111111111111111111111111222222222222222222222222222 +11111111111111111111111111111111111111111111111111111111111111111111111111111116 +11116111111111111111111111166611111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11226666666666666666666666622226222222222222611111111111111111111111111111111111 +11111111111111222222222222222222222222221111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111122666666666666266626626666262222222222 +22211111111111111111111111111111111111111111111111111122222222222222222222122262 +21111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111116161111111116111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11122666666666662266266266662222222262222261111111111111111111111111111111111111 +11111111111112222222222262222222221222222111111116111111111111111111111111111111 +11111111111111111111111111111111111111111111111111122222211111611111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111112226266666666662222226666222222222222 +26111111111111111111111111111111111111111111111111111222222222262222222222122222 +21111111221111111111111111111111111111111111111111111111111111111111111111111111 +11111111116222221111166611111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11112222226622666666222222626622222222226111111111111111111111111111111111111111 +11111111111152222222222222222222222222222111111126111111111111111111111111111111 +11111111111111111111111111111111111111111111122212222226111112226111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111222222266262266222222222222222222222 +21111111111111111111111111111111111111111111111111115222222222222222226222222222 +21111126261111111111111111111111111111111111111111111111111111111111111111111111 +11112222222222222111122221111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111222222266262666222222226662222222226111111111111111111111111111111111111111 +11111111111152222222222222222222222222221111222226111111111111111111111111111111 +11111111111111111111111111111111111111111111222222222222221112222611111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111222226662266622222626666622222226 +61111111111111111111111111111111111111111111111111112222222222266222222222262211 +11112222261111111111111111111111111111111111111111111111111111111111111111111111 +11222222222222222222222226111111111111111111111111111111116111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111222226662226662226222266222222666111111111111111111111111111111111111111 +11111111111122222222222222222222222661111111222261111111111111111111111111111111 +11111111111111111111111111111111111111111122222222222222222222222611111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111112222222622222222622266662222666 +11111111111111111111111111111111111111111111111111111222222222222222222222211111 +11116222611111111111111111111111111111111111111111111111111111111111111111111111 +12222222222222222222222222661111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111112222226222222222222222622266661111111111111111111111111111111111111111 +11111111111115222222222222222222222111111111622661111111111111111111111111111111 +11111111111111111111111111111111111111222222225522222222222222222222611111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111222222622222226222666666666666 +11111111111111111111111111111111111111111111111111111152222222222222222222211111 +11162226111111111111111111111111111111111111111111111111111111111111111111122222 +22222555555552222222222222266111111111111111161111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111112222666222222222266666666266611111111111111111111111111111111111111111 +11111111111111522222222222222222222211111112222211111111111111111111111111111111 +11111111111111111111111111111111112222222222255555522222222222222222266111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111222266222222222266666666666611 +11111111111111111111111111111111111111111111111111111155224422222222222222221111 +11112226111111111111111111111111111111111111111111111111111111111111111111222222 +22222555552222222222222222222261111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111122226662222222666662266666111111111111111111111111111111111111111111111 +11111111111111552242222222222222222111111111222111111111111111111111111111111111 +11111111111111111111111111111111122222222222225552222222222222222222222211111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111112222666222222266666626661111111 +11111111111111111111111111111111111111111111111111111115222422222222222221111111 +11111211111111111111111111111111111111111111111111111111111111111111111111222222 +22222222222222222222222222222222211111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111122226622222222666666666111111111111111111111111111111111111111111111111 +11111111111111152224222222222222211111111111111111111111111111111111111111111111 +11111111111111111111111111111111112222222222222222222222222222222222222261111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111112222662222222226666666111111111 +11111111111111111111111111111111111111111111111111111115522422222222222221111111 +11111111111111111111111111111111111111111111111111111111111111111111111111222222 +22222222222222222222222222222222211111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111122222222222266666626661111111111111111111111111111111111111111111111111 +11111111111111112252222222222226111111111111111111111111111111111111111111111111 +11111111111111111111111111111111112222222222222222222222212222222222222262111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111112222222222262666222222111111111 +11111111111111111111111111111111111111111111111111111111122222222222226111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111122222 +22222222222222222222222222222222611111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111122222222222622226622611111111111111111111111111111111111111111111111111 +11111111111111111222222222222261111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111222222222222222222222222222222222222261111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111122222222222262222222211111111111 +11111111111111111111111111111111111111111111111111111111112222222222261111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111122222 +22222222222222222222222222222222611111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111222222222222222222221111111111111111111111111111111111111111111111111111 +11111111111111111122222222226111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111122222222221111111126222222222222222211111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111122222222222222222221111111111111 +11111111111111111111111111111111111111111111111111111111112222222221111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111122222 +22221111111111122222222222222222111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111222222222222662222211111111111111111111111111111111111111111111111111111 +11111111111111111112211111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111222211111111111111112122222222222226111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111122222222222222222211111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111212222222226211111111111111111111111211111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111112222222222222222111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111122222222261111111111 +11111111111111211111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111266222222222222211111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111222222626611111111111111111111111112111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111162662222222222222111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111221221111111111111 +11111111111111126211111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111116666222222222222111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111122211111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111116662222666211111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111122111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111116666622222221111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111116261111111111111111111111116612111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111166662222211111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111662111111111111 +11111111111622111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111116666222222111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111611111111111111111111116622111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111116662222211111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111662111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111666222221111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111222211111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111166622221111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111221111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111166622222111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111166222222111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111162662222111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111311111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111622222211111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111162662211111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111166222111111111121111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111116622211111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111116612211111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111116666611111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111117777111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111177711111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111117771111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111777777711111111111111111111111 +11177777777777777777777777771177777771111111777111777777777771111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111177771111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111177777777777777777777711111111111111177777777777777777777777777777777777777 +77777777777777777777777777111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111777777777777777777777777777777111111177 +77777777777777777777777777777777777777777777777777777777777777777777777771111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111777111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111777777117 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777771111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111777177777777111111111111111111111111111111111111111111111111111111111111 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +71111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111111111111111111111111111117777777777711111111111111111111 +11111111111111111111111111111111111117777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777771111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111111111111111111111 +11111111777777777777777111111111111111111111111111111111111111111111111117777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777771111111111111111111111111111111111111111111111111111111111111111111111 +11111111111111111111111717777111111111111111111117777777777777711111111111111111 +11111111111111111111111111111777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777711111111111111111111111111111111 +11111111111111111111111111111111111111111111111111111111111111177777777777777777 +77777777777777777777711111111111111111111111111111111111111111177777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777111111111111111111111111111111111111111111111111111111111111111111111777777 +77777777771111111111177777777777777777777777777777777777777771111111111111111111 +11111111111111111111777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777771111111111111111111111111111111111111 +11111111111111111111777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777111111111111111111111111111111111777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77711111111111111111111111111111111111111111111111111117777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777111111111111111 +11111111111177777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777711111111111111111111111111111 +11177777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777771111111111111111177777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 +77777777777777777777777777777777777777777777777777777777777777777777777777777777 diff --git a/scm/src/CMakeLists.txt b/scm/src/CMakeLists.txt index 0e2eb13a9..6c3f24940 100644 --- a/scm/src/CMakeLists.txt +++ b/scm/src/CMakeLists.txt @@ -159,76 +159,99 @@ else (APPLE) message (FATAL_ERROR "Unsupported platform, only Linux and MacOSX are supported at this time.") endif() +# Build Options +set(32BIT OFF CACHE BOOL "Enable 32BIT (single precision arithmetic in SCM)") +set(AVX2 ON CACHE BOOL "Enable AVX2 instruction set") +set(AVX OFF CACHE BOOL "Enable AVX-I instruction set") +set(SIMDMULTIARCH OFF CACHE BOOL "Enable multi-target SIMD instruction sets") + #------------------------------------------------------------------------------ # Set compile options -if (${CMAKE_BUILD_TYPE} MATCHES "Debug") - # Basic settings - #if CFLAGS, CXX_FLAGS, or FFLAGS are defined via environment variables, use them - if (DEFINED ENV{CFLAGS}) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O0 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{CFLAGS}) - set (CMAKE_C_FLAGS "-O0 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{CFLAGS}) - if (DEFINED ENV{CXXFLAGS}) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{CXXFLAGS}) - set (CMAKE_CXX_FLAGS "-O0 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{CXXFLAGS}) - if (DEFINED ENV{FFLAGS}) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O0 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{FFLAGS}) - set (CMAKE_Fortran_FLAGS "-O0 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{FFLAGS}) - # Compiler-dependent settings - if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -ggdb") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fcheck=all -fbacktrace -ffpe-trap=zero -finit-real=nan -ggdb -ffree-line-length-none -cpp -fdefault-real-8 -fdefault-double-8 -fno-range-check") - if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10) +if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ggdb -fbacktrace -cpp -fcray-pointer -ffree-line-length-none -fno-range-check") + + if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10) set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz") + endif() + + if(NOT 32BIT) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fdefault-real-8 -fdefault-double-8") + endif() + + if (${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -O0 -fno-unsafe-math-optimizations -frounding-math -fsignaling-nans -ffpe-trap=invalid,zero,overflow -fbounds-check") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0") + else() + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2") + endif() + + set(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_Fortran_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_C_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_CXX_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_Fortran_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) +elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -g -traceback -fpp -fno-alias -auto -safe-cray-ptr -ftz -assume byterecl -nowarn -sox -align array64byte -qno-opt-dynamic-align") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -qno-opt-dynamic-align -sox -fp-model source") + + if(NOT 32BIT) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -real-size 64") + endif() + + if (${CMAKE_BUILD_TYPE} MATCHES "Debug") + set(CMAKE_Fortran_FLAGS_DEBUG "${CMAKE_Fortran_FLAGS_DEBUG} -O0 -check -check noarg_temp_created -check nopointer -warn -warn noerrors -fp-stack-check -fstack-protector-all -fpe0 -debug -ftrapuv -init=snan,arrays") + set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -O0 -ftrapuv") + else() + if(32BIT) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2 -debug minimal -fp-model source -qoverride-limits -qopt-prefetch=3") + else() + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2 -debug minimal -fp-model source -qoverride-limits -qopt-prefetch=3 -no-prec-div -no-prec-sqrt") endif() - elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -traceback") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -traceback") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fpe0 -warn -traceback -debug extended -fpp -r8") - elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -traceback") - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -traceback") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mnoipa -traceback -Mpreprocess -r8") - else (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") - message (FATAL_ERROR "This program has only been compiled with gfortran, pgf90 and ifort. If another compiler is needed, the appropriate flags must be added in ${CMAKE_SOURCE_DIR}/CMakeLists.txt") - endif (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") -elseif (${CMAKE_BUILD_TYPE} MATCHES "Release") - #if CFLAGS, CXX_FLAGS, or FFLAGS are defined via environment variables, use them - if (DEFINED ENV{CFLAGS}) - set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{CFLAGS}) - set (CMAKE_C_FLAGS "-O2 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{CFLAGS}) - if (DEFINED ENV{CXXFLAGS}) - set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{CXXFLAGS}) - set (CMAKE_CXX_FLAGS "-O2 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{CXXFLAGS}) - if (DEFINED ENV{FFLAGS}) - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -O2 -g -fPIC" CACHE STRING "" FORCE) - else (DEFINED ENV{FFLAGS}) - set (CMAKE_Fortran_FLAGS "-O2 -g -fPIC" CACHE STRING "" FORCE) - endif (DEFINED ENV{FFLAGS}) - # Compiler-dependent settings - if (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ffree-line-length-none -cpp -fdefault-real-8 -fdefault-double-8 -fno-range-check") - if(${CMAKE_Fortran_COMPILER_VERSION} VERSION_GREATER_EQUAL 10) - set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -fallow-argument-mismatch -fallow-invalid-boz") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2 -debug minimal") + set(FAST "-fast-transcendentals") + if(AVX2) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -march=core-avx2") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=core-avx2") + elseif(SIMDMULTIARCH) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -axSSE4.2,CORE-AVX2") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -axSSE4.2,CORE-AVX2") + elseif(AVX) + set(CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -march=core-avx-i") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -march=core-avx-i") endif() - elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "Intel") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -ftz -debug minimal -fpp -r8") - elseif (${CMAKE_Fortran_COMPILER_ID} MATCHES "PGI") - set (CMAKE_Fortran_FLAGS "${CMAKE_Fortran_FLAGS} -Mipa=noconst -Mpreprocess -r8") - else (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") - message (FATAL_ERROR "This program has only been compiled with gfortran, pgf90 and ifort. If another compiler is needed, the appropriate flags must be added in ${CMAKE_SOURCE_DIR}/CMakeLists.txt") - endif (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") -endif (${CMAKE_BUILD_TYPE} MATCHES "Debug") + endif() + + set(CMAKE_C_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_CXX_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_Fortran_FLAGS_RELEASE "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_C_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_CXX_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) + set(CMAKE_Fortran_FLAGS_BITFORBIT "-O2 -fPIC" CACHE STRING "" FORCE) +else (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") + message (FATAL_ERROR "This program has only been compiled with gfortran and ifort. If another compiler is needed, the appropriate flags must be added in ${CMAKE_SOURCE_DIR}/CMakeLists.txt") +endif (${CMAKE_Fortran_COMPILER_ID} MATCHES "GNU") + + +#------------------------------------------------------------------------------ +# Set flag for 32bit dynamics build +if(32BIT) + message(STATUS "Compile CCPP slow physics with 64-bit precision, fast physics with 32-bit precision") + add_definitions(-DOVERLOAD_R4) + if(CMAKE_Fortran_COMPILER_ID MATCHES "Intel") + set(CMAKE_Fortran_FLAGS_PHYSICS "-real-size 64 -no-prec-div -no-prec-sqrt") + elseif(CMAKE_Fortran_COMPILER_ID MATCHES "GNU") + set(CMAKE_Fortran_FLAGS_PHYSICS "-fdefault-real-8 -fdefault-double-8") + endif() + set(CMAKE_Fortran_FLAGS_DYNAMICS "") +else() + message(STATUS "Compile CCPP physics with 64-bit precision") + remove_definitions(-DOVERLOAD_R8) + remove_definitions(-DOVERLOAD_R4) + set(CMAKE_Fortran_FLAGS_PHYSICS "") + set(CMAKE_Fortran_FLAGS_DYNAMICS "") +endif() #------------------------------------------------------------------------------ # Set netCDF flags for preprocessor, compiler and linker (if defined) @@ -283,19 +306,6 @@ else (SIONLIB) message (STATUS "Disable SIONlib support") endif (SIONLIB) -#------------------------------------------------------------------------------ -# The Fortran compiler/linker flag inserted by cmake to create shared libraries -# with the Intel compiler is deprecated (-i_dynamic), correct here. -# CMAKE_Fortran_COMPILER_ID = {"Intel", "PGI", "GNU", "Clang", "MSVC", ...} -if ("${CMAKE_Fortran_COMPILER_ID}" STREQUAL "Intel") - string(REPLACE "-i_dynamic" "-shared-intel" - CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS - "${CMAKE_SHARED_LIBRARY_CREATE_Fortran_FLAGS}") - string(REPLACE "-i_dynamic" "-shared-intel" - CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS - "${CMAKE_SHARED_LIBRARY_LINK_Fortran_FLAGS}") -endif() - #------------------------------------------------------------------------------ # CMake Modules # Set the CMake module path diff --git a/scm/src/GFS_typedefs.F90 b/scm/src/GFS_typedefs.F90 index 3744bd90c..f8e1374b4 100644 --- a/scm/src/GFS_typedefs.F90 +++ b/scm/src/GFS_typedefs.F90 @@ -240,6 +240,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: sfalb_ice (:) => null() !< surface albedo over ice for LSM real (kind=kind_phys), pointer :: emis_lnd (:) => null() !< surface emissivity over land for LSM real (kind=kind_phys), pointer :: emis_ice (:) => null() !< surface emissivity over ice for LSM + real (kind=kind_phys), pointer :: emis_wat (:) => null() !< surface emissivity over water real (kind=kind_phys), pointer :: sfalb_lnd_bck (:) => null() !< snow-free albedo over land !--- In (radiation only) @@ -275,6 +276,7 @@ module GFS_typedefs !-- In/Out real (kind=kind_phys), pointer :: conv_act(:) => null() !< convective activity counter for Grell-Freitas + real (kind=kind_phys), pointer :: conv_act_m(:)=> null() !< midlevel convective activity counter for Grell-Freitas real (kind=kind_phys), pointer :: hice (:) => null() !< sea ice thickness real (kind=kind_phys), pointer :: weasd (:) => null() !< water equiv of accumulated snow depth (kg/m**2) !< over land and sea ice @@ -427,6 +429,13 @@ module GFS_typedefs real (kind=kind_phys), pointer :: visbmui(:) => null() !< sfc uv+vis beam sw upward flux (w/m2) real (kind=kind_phys), pointer :: visdfui(:) => null() !< sfc uv+vis diff sw upward flux (w/m2) + ! RRTMGP + real (kind=kind_phys), pointer :: fluxlwUP_jac(:,:) => null() !< RRTMGP Jacobian of upward longwave all-sky flux + real (kind=kind_phys), pointer :: htrlw(:,:) => null() !< RRTMGP updated LW heating rate + real (kind=kind_phys), pointer :: tsfc_radtime(:) => null() !< RRTMGP surface temperature on radiation timestep + real (kind=kind_phys), pointer :: fluxlwUP_radtime(:,:) => null() !< RRTMGP upward longwave all-sky flux profile + real (kind=kind_phys), pointer :: fluxlwDOWN_radtime(:,:) => null() !< RRTMGP downward longwave all-sky flux profile + !--- In (physics only) real (kind=kind_phys), pointer :: sfcdsw(:) => null() !< total sky sfc downward sw flux ( w/m**2 ) !< GFS_radtend_type%sfcfsw%dnfxc @@ -435,11 +444,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: sfcdlw(:) => null() !< total sky sfc downward lw flux ( w/m**2 ) !< GFS_radtend_type%sfclsw%dnfxc real (kind=kind_phys), pointer :: sfculw(:) => null() !< total sky sfc upward lw flux ( w/m**2 ) - real (kind=kind_phys), pointer :: fluxlwUP_jac(:,:) => null() !< GP Jacobian up LW total sky flux profile ( w/m**2/K ) - real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< GP up LW total sky flux profile ( w/m**2/K ) - real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< GP down LW total sky flux profile ( w/m**2/K ) - real (kind=kind_phys), pointer :: htrlw(:,:) => null() !< GP updated LW heating rate - real (kind=kind_phys), pointer :: tsfc_radtime(:) => null() !< GP surface temperature on radiation timestep !--- incoming quantities real (kind=kind_phys), pointer :: dusfcin_cpl(:) => null() !< aoi_fld%dusfcin(item,lan) @@ -737,6 +741,9 @@ module GFS_typedefs real(kind_phys) :: maxGPpres !< Maximum pressure allowed in RRTMGP. real(kind_phys) :: minGPtemp !< Minimum temperature allowed in RRTMGP. real(kind_phys) :: maxGPtemp !< Maximum temperature allowed in RRTMGP. + logical :: top_at_1 !< Vertical ordering flag. + integer :: iSFC !< Vertical index for surface + integer :: iTOA !< Vertical index for TOA !--- microphysical switch logical :: convert_dry_rho = .true. !< flag for converting mass/number concentrations from moist to dry @@ -816,8 +823,7 @@ module GFS_typedefs integer :: thompson_ext_ndiag3d=37 !< number of 3d arrays for extended diagnostic output from Thompson real(kind=kind_phys) :: dt_inner !< time step for the inner loop in s logical :: sedi_semi !< flag for semi Lagrangian sedi of rain - logical :: sedi_semi_update!< flag for v update in semi Lagrangian sedi of rain - logical :: sedi_semi_decfl !< flag for interation with semi Lagrangian sedi of rain + integer :: decfl !< deformed CFL factor !--- GFDL microphysical paramters logical :: lgfdlmprad !< flag for GFDL mp scheme and radiation consistency @@ -1414,6 +1420,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: prevst (:,:) => null() !< real (kind=kind_phys), pointer :: prevsq (:,:) => null() !< integer, pointer :: cactiv (:) => null() !< convective activity memory contour + integer, pointer :: cactiv_m (:) => null() !< mid-level convective activity memory contour + real (kind=kind_phys), pointer :: aod_gf (:) => null() !--- MYNN prognostic variables that can't be in the Intdiag or Interstitial DDTs real (kind=kind_phys), pointer :: CLDFRA_BL (:,:) => null() ! @@ -1537,6 +1545,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: evbsa (:) => null() !< noah lsm diagnostics real (kind=kind_phys), pointer :: evcwa (:) => null() !< noah lsm diagnostics real (kind=kind_phys), pointer :: snohfa (:) => null() !< noah lsm diagnostics + real (kind=kind_phys), pointer :: paha (:) => null() !< noah lsm diagnostics real (kind=kind_phys), pointer :: transa (:) => null() !< noah lsm diagnostics real (kind=kind_phys), pointer :: sbsnoa (:) => null() !< noah lsm diagnostics real (kind=kind_phys), pointer :: snowca (:) => null() !< noah lsm diagnostics @@ -1555,6 +1564,10 @@ module GFS_typedefs real (kind=kind_phys), pointer :: suntim (:) => null() !< sunshine duration time (s) real (kind=kind_phys), pointer :: runoff (:) => null() !< total water runoff real (kind=kind_phys), pointer :: ep (:) => null() !< potential evaporation + real (kind=kind_phys), pointer :: tecan (:) => null() !< total evaporation of intercepted water + real (kind=kind_phys), pointer :: tetran (:) => null() !< total transpiration rate + real (kind=kind_phys), pointer :: tedir (:) => null() !< total soil surface evaporation rate + real (kind=kind_phys), pointer :: twa (:) => null() !< total water storage in aquifer real (kind=kind_phys), pointer :: cldwrk (:) => null() !< cloud workfunction (valid only with sas) real (kind=kind_phys), pointer :: dugwd (:) => null() !< vertically integrated u change by OGWD real (kind=kind_phys), pointer :: dvgwd (:) => null() !< vertically integrated v change by OGWD @@ -1621,6 +1634,7 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dtsfci (:) => null() !< instantaneous sfc sensible heat flux real (kind=kind_phys), pointer :: dqsfci (:) => null() !< instantaneous sfc latent heat flux real (kind=kind_phys), pointer :: gfluxi (:) => null() !< instantaneous sfc ground heat flux + real (kind=kind_phys), pointer :: pahi (:) => null() !< instantaneous precipitation advected heat flux real (kind=kind_phys), pointer :: epi (:) => null() !< instantaneous sfc potential evaporation real (kind=kind_phys), pointer :: smcwlt2(:) => null() !< wilting point (volumetric) real (kind=kind_phys), pointer :: smcref2(:) => null() !< soil moisture threshold (volumetric) @@ -1654,6 +1668,12 @@ module GFS_typedefs real (kind=kind_phys), pointer :: cldfra (:,:) => null() !< instantaneous 3D cloud fraction !--- MP quantities for 3D diagnositics real (kind=kind_phys), pointer :: refl_10cm(:,:) => null() !< instantaneous refl_10cm + real (kind=kind_phys), pointer :: cldfra2d (:) => null() !< instantaneous 2D cloud fraction + real (kind=kind_phys), pointer :: total_albedo (:) => null() !< total sky (with cloud) albedo at toa + real (kind=kind_phys), pointer :: lwp_ex (:) => null() !< liquid water path from microphysics + real (kind=kind_phys), pointer :: iwp_ex (:) => null() !< ice water path from microphysics + real (kind=kind_phys), pointer :: lwp_fc (:) => null() !< liquid water path from cloud fraction scheme + real (kind=kind_phys), pointer :: iwp_fc (:) => null() !< ice water path from cloud fraction scheme !--- Extra PBL diagnostics real (kind=kind_phys), pointer :: dkt(:,:) => null() !< Eddy diffusitivity for heat @@ -1865,6 +1885,10 @@ module GFS_typedefs real (kind=kind_phys), pointer :: evap_water(:) => null() !< real (kind=kind_phys), pointer :: evbs(:) => null() !< real (kind=kind_phys), pointer :: evcw(:) => null() !< + real (kind=kind_phys), pointer :: pah(:) => null() !< + real (kind=kind_phys), pointer :: ecan(:) => null() !< + real (kind=kind_phys), pointer :: etran(:) => null() !< + real (kind=kind_phys), pointer :: edir(:) => null() !< real (kind=kind_phys), pointer :: faerlw(:,:,:,:) => null() !< real (kind=kind_phys), pointer :: faersw(:,:,:,:) => null() !< real (kind=kind_phys), pointer :: ffhh_ice(:) => null() !< @@ -2007,7 +2031,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: save_v(:,:) => null() !< real (kind=kind_phys), pointer :: sbsno(:) => null() !< type (cmpfsw_type), pointer :: scmpsw(:) => null() !< - real (kind=kind_phys), pointer :: semis_water(:) => null() !< real (kind=kind_phys), pointer :: sfcalb(:,:) => null() !< real (kind=kind_phys), pointer :: sigma(:) => null() !< real (kind=kind_phys), pointer :: sigmaf(:) => null() !< @@ -2088,8 +2111,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: dudt_tms(:,:) => null() !< daily aver u-wind tend due to TMS ! RRTMGP - integer :: ipsdlw0 !< - integer :: ipsdsw0 !< real (kind=kind_phys), pointer :: p_lay(:,:) => null() !< real (kind=kind_phys), pointer :: p_lev(:,:) => null() !< real (kind=kind_phys), pointer :: t_lev(:,:) => null() !< @@ -2114,6 +2135,8 @@ module GFS_typedefs real (kind=kind_phys), pointer :: cld_rwp(:,:) => null() !< Cloud rain water path real (kind=kind_phys), pointer :: cld_rerain(:,:) => null() !< Cloud rain effective radius real (kind=kind_phys), pointer :: precip_frac(:,:) => null() !< Precipitation fraction + real (kind=kind_phys), pointer :: fluxlwUP_allsky(:,:) => null() !< RRTMGP upward longwave all-sky flux profile + real (kind=kind_phys), pointer :: fluxlwDOWN_allsky(:,:) => null() !< RRTMGP downward longwave all-sky flux profile real (kind=kind_phys), pointer :: fluxlwUP_clrsky(:,:) => null() !< RRTMGP upward longwave clr-sky flux profile real (kind=kind_phys), pointer :: fluxlwDOWN_clrsky(:,:) => null() !< RRTMGP downward longwave clr-sky flux profile real (kind=kind_phys), pointer :: fluxswUP_allsky(:,:) => null() !< RRTMGP upward shortwave all-sky flux profile @@ -2128,8 +2151,6 @@ module GFS_typedefs real (kind=kind_phys), pointer :: sfc_alb_uvvis_dif(:,:) => null() !< real (kind=kind_phys), pointer :: toa_src_lw(:,:) => null() !< real (kind=kind_phys), pointer :: toa_src_sw(:,:) => null() !< - integer, pointer :: icseed_lw(:) => null() !< RRTMGP seed for RNG for longwave radiation - integer, pointer :: icseed_sw(:) => null() !< RRTMGP seed for RNG for shortwave radiation type(proflw_type), pointer :: flxprf_lw(:,:) => null() !< DDT containing RRTMGP longwave fluxes type(profsw_type), pointer :: flxprf_sw(:,:) => null() !< DDT containing RRTMGP shortwave fluxes type(ty_optical_props_2str) :: lw_optical_props_cloudsByBand !< RRTMGP DDT @@ -2300,6 +2321,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) allocate(Sfcprop%albdifnir_lnd (IM)) allocate (Sfcprop%emis_lnd (IM)) allocate (Sfcprop%emis_ice (IM)) + allocate (Sfcprop%emis_wat (IM)) Sfcprop%slmsk = clear_val Sfcprop%oceanfrac = clear_val @@ -2329,6 +2351,7 @@ subroutine sfcprop_create (Sfcprop, IM, Model) Sfcprop%albdifnir_lnd = clear_val Sfcprop%emis_lnd = clear_val Sfcprop%emis_ice = clear_val + Sfcprop%emis_wat = clear_val !--- In (radiation only) allocate (Sfcprop%snoalb (IM)) @@ -2660,7 +2683,9 @@ subroutine sfcprop_create (Sfcprop, IM, Model) end if if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate (Sfcprop%conv_act(IM)) + allocate (Sfcprop%conv_act_m(IM)) Sfcprop%conv_act = zero + Sfcprop%conv_act_m = zero end if end subroutine sfcprop_create @@ -2707,18 +2732,17 @@ subroutine coupling_create (Coupling, IM, Model) Coupling%sfcdlw = clear_val Coupling%sfculw = clear_val - ! Coupling to RRTMGP, used for time step LW rad adjustment. if (Model%do_RRTMGP) then - allocate (Coupling%fluxlwUP_jac (IM,Model%levs+1)) - allocate (Coupling%fluxlwUP_allsky (IM,Model%levs+1)) - allocate (Coupling%fluxlwDOWN_allsky (IM,Model%levs+1)) - allocate (Coupling%htrlw (IM,Model%levs)) - allocate (Coupling%tsfc_radtime (IM)) - Coupling%fluxlwUP_jac = clear_val - Coupling%fluxlwUP_allsky = clear_val - Coupling%fluxlwDOWN_allsky = clear_val - Coupling%htrlw = clear_val - Coupling%tsfc_radtime = clear_val + allocate (Coupling%fluxlwUP_radtime (IM, Model%levs+1)) + allocate (Coupling%fluxlwDOWN_radtime (IM, Model%levs+1)) + allocate (Coupling%fluxlwUP_jac (IM, Model%levs+1)) + allocate (Coupling%htrlw (IM, Model%levs)) + allocate (Coupling%tsfc_radtime (IM)) + Coupling%fluxlwUP_radtime = clear_val + Coupling%fluxlwDOWN_radtime = clear_val + Coupling%fluxlwUP_jac = clear_val + Coupling%htrlw = clear_val + Coupling%tsfc_radtime = clear_val endif if (Model%cplflx .or. Model%do_sppt .or. Model%cplchm .or. Model%ca_global) then @@ -3167,8 +3191,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & logical :: ext_diag_thompson = .false. !< flag for extended diagnostic output from Thompson real(kind=kind_phys) :: dt_inner = -999.0 !< time step for the inner loop logical :: sedi_semi = .false. !< flag for semi Lagrangian sedi of rain - logical :: sedi_semi_update = .false. !< flag for v update in semi Lagrangian sedi of rain - logical :: sedi_semi_decfl = .false. !< flag for interation with semi Lagrangian sedi of rain + integer :: decfl = 8 !< deformed CFL factor !--- GFDL microphysical parameters logical :: lgfdlmprad = .false. !< flag for GFDLMP radiation interaction @@ -3539,7 +3562,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & mg_alf, mg_qcmin, mg_do_ice_gmao, mg_do_liq_liu, & ltaerosol, lradar, nsradar_reset, lrefres, ttendlim, & ext_diag_thompson, dt_inner, lgfdlmprad, & - sedi_semi, sedi_semi_update, sedi_semi_decfl, & + sedi_semi, decfl, & !--- max hourly avg_max_length, & !--- land/surface model control @@ -4031,8 +4054,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & Model%dt_inner = Model%dtp endif Model%sedi_semi = sedi_semi - Model%sedi_semi_update = sedi_semi_update - Model%sedi_semi_decfl = sedi_semi_decfl + Model%decfl = decfl !--- F-A MP parameters Model%rhgrd = rhgrd Model%spec_adv = spec_adv @@ -5110,8 +5132,7 @@ subroutine control_initialize (Model, nlunit, fn_nml, me, master, & ' ext_diag_thompson =',Model%ext_diag_thompson, & ' dt_inner =',Model%dt_inner, & ' sedi_semi=',Model%sedi_semi, & - ' sedi_semi_update=',sedi_semi_update, & - ' sedi_semi_decfl=',sedi_semi_decfl, & + ' decfl=',decfl, & ' effr_in =',Model%effr_in, & ' lradar =',Model%lradar, & ' nsradar_reset =',Model%nsradar_reset, & @@ -5530,8 +5551,7 @@ subroutine control_print(Model) print *, ' ext_diag_thompson : ', Model%ext_diag_thompson print *, ' dt_inner : ', Model%dt_inner print *, ' sedi_semi : ', Model%sedi_semi - print *, ' sedi_semi_update : ', Model%sedi_semi_update - print *, ' sedi_semi_decfl : ', Model%sedi_semi_decfl + print *, ' decfl : ', Model%decfl print *, ' ' endif if (Model%imp_physics == Model%imp_physics_mg) then @@ -6025,7 +6045,11 @@ subroutine tbd_create (Tbd, IM, Model) if (Model%imfdeepcnv == Model%imfdeepcnv_gf) then allocate(Tbd%cactiv(IM)) + allocate(Tbd%cactiv_m(IM)) + allocate(Tbd%aod_gf(IM)) Tbd%cactiv = zero + Tbd%cactiv_m = zero + Tbd%aod_gf = zero end if !--- MYNN variables: @@ -6428,6 +6452,9 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%ulwsfc (IM)) allocate (Diag%suntim (IM)) allocate (Diag%runoff (IM)) + allocate (Diag%tecan (IM)) + allocate (Diag%tetran (IM)) + allocate (Diag%tedir (IM)) allocate (Diag%ep (IM)) allocate (Diag%cldwrk (IM)) allocate (Diag%dugwd (IM)) @@ -6489,11 +6516,23 @@ subroutine diag_create (Diag, IM, Model) allocate (Diag%tdoms (IM)) allocate (Diag%zmtnblck (IM)) + if(Model%lsm == Model%lsm_noahmp) then + allocate (Diag%paha (IM)) + allocate (Diag%twa (IM)) + allocate (Diag%pahi (IM)) + endif + ! F-A MP scheme if (Model%imp_physics == Model%imp_physics_fer_hires) then allocate (Diag%train (IM,Model%levs)) end if - allocate (Diag%cldfra (IM,Model%levs)) + allocate (Diag%cldfra (IM,Model%levr+LTP)) + allocate (Diag%cldfra2d (IM)) + allocate (Diag%total_albedo (IM)) + allocate (Diag%lwp_ex (IM)) + allocate (Diag%iwp_ex (IM)) + allocate (Diag%lwp_fc (IM)) + allocate (Diag%iwp_fc (IM)) !--- 3D diagnostics if (Model%ldiag3d) then @@ -6692,6 +6731,9 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%ulwsfc = zero Diag%suntim = zero Diag%runoff = zero + Diag%tecan = zero + Diag%tetran = zero + Diag%tedir = zero Diag%ep = zero Diag%cldwrk = zero Diag%dugwd = zero @@ -6746,10 +6788,22 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%tdomip = zero Diag%tdoms = zero + if(Model%lsm == Model%lsm_noahmp)then + Diag%paha = zero + Diag%twa = zero + Diag%pahi = zero + endif + if (Model%imp_physics == Model%imp_physics_fer_hires) then Diag%train = zero end if Diag%cldfra = zero + Diag%cldfra2d = zero + Diag%total_albedo = zero + Diag%lwp_ex = zero + Diag%iwp_ex = zero + Diag%lwp_fc = zero + Diag%iwp_fc = zero Diag%totprcpb = zero Diag%cnvprcpb = zero @@ -6860,7 +6914,7 @@ subroutine diag_phys_zero (Diag, Model, linit, iauwindow_center) Diag%dku = zero ! max hourly diagnostics - Diag%refl_10cm = zero + Diag%refl_10cm = -35. Diag%refdmax = -35. Diag%refdmax263k = -35. Diag%t02max = -999. @@ -6974,6 +7028,10 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%evap_water (IM)) allocate (Interstitial%evbs (IM)) allocate (Interstitial%evcw (IM)) + allocate (Interstitial%pah (IM)) + allocate (Interstitial%ecan (IM)) + allocate (Interstitial%etran (IM)) + allocate (Interstitial%edir (IM)) allocate (Interstitial%faerlw (IM,Model%levr+LTP,NBDLW,NF_AELW)) allocate (Interstitial%faersw (IM,Model%levr+LTP,NBDSW,NF_AESW)) allocate (Interstitial%ffhh_ice (IM)) @@ -7064,7 +7122,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%save_v (IM,Model%levs)) allocate (Interstitial%sbsno (IM)) allocate (Interstitial%scmpsw (IM)) - allocate (Interstitial%semis_water (IM)) allocate (Interstitial%sfcalb (IM,NF_ALBD)) allocate (Interstitial%sigma (IM)) allocate (Interstitial%sigmaf (IM)) @@ -7125,6 +7182,8 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%t_lay (IM, Model%levs)) allocate (Interstitial%cloud_overlap_param (IM, Model%levs)) allocate (Interstitial%precip_overlap_param (IM, Model%levs)) + allocate (Interstitial%fluxlwUP_allsky (IM, Model%levs+1)) + allocate (Interstitial%fluxlwDOWN_allsky (IM, Model%levs+1)) allocate (Interstitial%fluxlwUP_clrsky (IM, Model%levs+1)) allocate (Interstitial%fluxlwDOWN_clrsky (IM, Model%levs+1)) allocate (Interstitial%fluxswUP_allsky (IM, Model%levs+1)) @@ -7143,8 +7202,6 @@ subroutine interstitial_create (Interstitial, IM, Model) allocate (Interstitial%cld_rwp (IM, Model%levs)) allocate (Interstitial%cld_rerain (IM, Model%levs)) allocate (Interstitial%precip_frac (IM, Model%levs)) - allocate (Interstitial%icseed_lw (IM)) - allocate (Interstitial%icseed_sw (IM)) allocate (Interstitial%flxprf_lw (IM, Model%levs+1)) allocate (Interstitial%flxprf_sw (IM, Model%levs+1)) allocate (Interstitial%sfc_emiss_byband (Model%rrtmgp_nBandsLW,IM)) @@ -7548,18 +7605,19 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%plyr = clear_val Interstitial%qlyr = clear_val Interstitial%raddt = clear_val - Interstitial%scmpsw%uvbfc = clear_val - Interstitial%scmpsw%uvbf0 = clear_val - Interstitial%scmpsw%nirbm = clear_val - Interstitial%scmpsw%nirdf = clear_val - Interstitial%scmpsw%visbm = clear_val - Interstitial%scmpsw%visdf = clear_val Interstitial%sfcalb = clear_val Interstitial%tlvl = clear_val Interstitial%tlyr = clear_val Interstitial%tsfa = clear_val Interstitial%tsfg = clear_val + ! Interstitials used by both RRTMG and RRTMGP + Interstitial%scmpsw%uvbfc = clear_val + Interstitial%scmpsw%uvbf0 = clear_val + Interstitial%scmpsw%nirbm = clear_val + Interstitial%scmpsw%nirdf = clear_val + Interstitial%scmpsw%visbm = clear_val + Interstitial%scmpsw%visdf = clear_val if (Model%do_RRTMGP) then Interstitial%tracer = clear_val Interstitial%tv_lay = clear_val @@ -7573,6 +7631,8 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%t_lay = clear_val Interstitial%cloud_overlap_param = clear_val Interstitial%precip_overlap_param = clear_val + Interstitial%fluxlwUP_allsky = clear_val + Interstitial%fluxlwDOWN_allsky = clear_val Interstitial%fluxlwUP_clrsky = clear_val Interstitial%fluxlwDOWN_clrsky = clear_val Interstitial%fluxswUP_allsky = clear_val @@ -7591,8 +7651,6 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%cld_rwp = clear_val Interstitial%cld_rerain = clear_val Interstitial%precip_frac = clear_val - Interstitial%icseed_lw = clear_val - Interstitial%icseed_sw = clear_val Interstitial%sfc_emiss_byband = clear_val Interstitial%sec_diff_byband = clear_val Interstitial%sfc_alb_nir_dir = clear_val @@ -7612,13 +7670,25 @@ subroutine interstitial_rad_reset (Interstitial, Model) Interstitial%lw_optical_props_precip%tau = clear_val Interstitial%lw_optical_props_precip%ssa = clear_val Interstitial%lw_optical_props_precip%g = clear_val - Interstitial%lw_optical_props_clrsky%tau = clear_val Interstitial%lw_optical_props_cloudsByBand%tau = clear_val Interstitial%lw_optical_props_cloudsByBand%ssa = clear_val Interstitial%lw_optical_props_cloudsByBand%g = clear_val Interstitial%lw_optical_props_precipByBand%tau = clear_val Interstitial%lw_optical_props_precipByBand%ssa = clear_val Interstitial%lw_optical_props_precipByBand%g = clear_val + Interstitial%sources%sfc_source = clear_val + Interstitial%sources%lay_source = clear_val + Interstitial%sources%lev_source_inc = clear_val + Interstitial%sources%lev_source_dec = clear_val + Interstitial%sources%sfc_source_Jac = clear_val + Interstitial%flxprf_lw%upfxc = clear_val + Interstitial%flxprf_lw%dnfxc = clear_val + Interstitial%flxprf_lw%upfx0 = clear_val + Interstitial%flxprf_lw%dnfx0 = clear_val + Interstitial%flxprf_sw%upfxc = clear_val + Interstitial%flxprf_sw%dnfxc = clear_val + Interstitial%flxprf_sw%upfx0 = clear_val + Interstitial%flxprf_sw%dnfx0 = clear_val end if ! end subroutine interstitial_rad_reset @@ -7694,6 +7764,10 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%evap_water = Model%huge Interstitial%evbs = clear_val Interstitial%evcw = clear_val + Interstitial%pah = clear_val + Interstitial%ecan = clear_val + Interstitial%etran = clear_val + Interstitial%edir = clear_val Interstitial%ffhh_ice = Model%huge Interstitial%ffhh_land = Model%huge Interstitial%ffhh_water = Model%huge @@ -7769,7 +7843,6 @@ subroutine interstitial_phys_reset (Interstitial, Model) Interstitial%save_u = clear_val Interstitial%save_v = clear_val Interstitial%sbsno = clear_val - Interstitial%semis_water = clear_val Interstitial%sigma = clear_val Interstitial%sigmaf = clear_val Interstitial%sigmafrac = clear_val diff --git a/scm/src/GFS_typedefs.meta b/scm/src/GFS_typedefs.meta index 24d8ce997..ae5aa7ea4 100644 --- a/scm/src/GFS_typedefs.meta +++ b/scm/src/GFS_typedefs.meta @@ -609,7 +609,7 @@ [hprime] standard_name = statistical_measures_of_subgrid_orography_collection_array long_name = orographic metrics - units = various + units = mixed dimensions = (horizontal_loop_extent,number_of_statistical_measures_of_subgrid_orography) type = real kind = kind_phys @@ -671,7 +671,13 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (control_for_land_surface_scheme == identifier_for_ruc_land_surface_scheme) +[emis_wat] + standard_name = surface_longwave_emissivity_over_water + long_name = surface lw emissivity in fraction over water + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys [sfalb_lnd] standard_name = surface_diffused_shortwave_albedo_over_land long_name = mean surface diffused sw albedo over land @@ -803,6 +809,14 @@ type = real kind = kind_phys active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) +[conv_act_m] + standard_name = consecutive_calls_for_grell_freitas_mid_level_convection + long_name = Memory counter for GF midlevel + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) [spec_sh_flux] standard_name = specified_surface_upward_temperature_flux long_name = specified kinematic surface upward sensible heat flux @@ -1806,46 +1820,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[htrlw] - standard_name = updated_tendency_of_air_temperature_due_to_longwave_heating_on_physics_timestep - long_name = total sky longwave heating rate on physics time step - units = K s-1 - dimensions = (horizontal_loop_extent,vertical_layer_dimension) - type = real - kind = kind_phys - active = (flag_for_rrtmgp_radiation_scheme) -[tsfc_radtime] - standard_name = surface_skin_temperature_on_radiation_timestep - long_name = surface skin temperature on radiation timestep - units = K - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys - active = (flag_for_rrtmgp_radiation_scheme) -[fluxlwUP_jac] - standard_name = RRTMGP_jacobian_of_lw_flux_upward - long_name = RRTMGP Jacobian upward longwave flux profile - units = W m-2 K-1 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - active = (flag_for_rrtmgp_radiation_scheme) -[fluxlwUP_allsky] - standard_name = RRTMGP_lw_flux_profile_upward_allsky - long_name = RRTMGP upward longwave all-sky flux profile - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - active = (flag_for_rrtmgp_radiation_scheme) -[fluxlwDOWN_allsky] - standard_name = RRTMGP_lw_flux_profile_downward_allsky - long_name = RRTMGP downward longwave all-sky flux profile - units = W m-2 - dimensions = (horizontal_loop_extent,vertical_interface_dimension) - type = real - kind = kind_phys - active = (flag_for_rrtmgp_radiation_scheme) [rain_cpl] standard_name = cumulative_lwe_thickness_of_precipitation_amount_for_coupling long_name = total rain precipitation @@ -2340,6 +2314,46 @@ type = real kind = kind_phys active = (flag_for_chemistry_coupling) +[htrlw] + standard_name = updated_tendency_of_air_temperature_due_to_longwave_heating_on_physics_timestep + long_name = total sky longwave heating rate on physics time step + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) +[tsfc_radtime] + standard_name = surface_skin_temperature_on_radiation_timestep + long_name = surface skin temperature on radiation timestep + units = K + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) +[fluxlwUP_jac] + standard_name = RRTMGP_jacobian_of_lw_flux_upward + long_name = RRTMGP Jacobian upward longwave flux profile + units = W m-2 K-1 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) +[fluxlwUP_radtime] + standard_name = RRTMGP_lw_flux_profile_upward_allsky_on_radiation_timestep + long_name = RRTMGP upward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) +[fluxlwDOWN_radtime] + standard_name = RRTMGP_lw_flux_profile_downward_allsky_on_radiation_timestep + long_name = RRTMGP downward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) ######################################################################## [ccpp-table-properties] @@ -3049,6 +3063,24 @@ dimensions = () type = real kind = kind_phys +[top_at_1] + standard_name = flag_for_vertical_ordering_in_RRTMGP + long_name = flag for vertical ordering in RRTMGP + units = flag + dimensions = () + type = logical +[iSFC] + standard_name = vertical_index_for_surface_in_RRTMGP + long_name = index for surface layer in RRTMGP + units = flag + dimensions = () + type = integer +[iTOA] + standard_name = vertical_index_for_TOA_in_RRTMGP + long_name = index for TOA layer in RRTMGP + units = flag + dimensions = () + type = integer [convert_dry_rho] standard_name = flag_for_converting_hydrometeors_from_moist_to_dry_air long_name = flag for converting hydrometeors from moist to dry air @@ -3254,7 +3286,7 @@ [mg_qcvar] standard_name = relative_variance_of_subgrid_cloud_condensate_distribution long_name = cloud water relative variance for MG microphysics - units = + units = frac dimensions = () type = real kind = kind_phys @@ -3268,7 +3300,7 @@ [mg_rhmini] standard_name = relative_humidity_threshold_for_ice_nucleation long_name = relative humidity threshold parameter for nucleating ice for MG microphysics - units = none + units = frac dimensions = () type = real kind = kind_phys @@ -3519,21 +3551,12 @@ units = flag dimensions = () type = logical - intent = in -[sedi_semi_update] - standard_name = flag_for_v_update_in_semi_Lagrangian_sedi - long_name = flag for v update in semi Lagrangian sedi of rain - units = flag - dimensions = () - type = logical - intent = in -[sedi_semi_decfl] - standard_name = flag_for_iteration_with_semi_Lagrangian_sedi - long_name = flag for interation with semi Lagrangian sedi of rain - units = flag +[decfl] + standard_name = deformed_CFL_factor + long_name = deformed CFL factor + units = count dimensions = () - type = logical - intent = in + type = integer [lgfdlmprad] standard_name = flag_for_GFDL_microphysics_radiation_interaction long_name = flag for GFDL microphysics-radiation interaction @@ -3826,7 +3849,7 @@ [rhgrd] standard_name = relative_humidity_threshold_for_condensation long_name = relative humidity threshold parameter for condensation for FA scheme - units = none + units = frac dimensions = () type = real kind = kind_phys @@ -5742,21 +5765,21 @@ [tau_amf] standard_name = absolute_momentum_flux_due_to_nonorographic_gravity_wave_drag long_name = ngw_absolute_momentum_flux - units = various + units = mixed dimensions = (horizontal_loop_extent) type = real kind = kind_phys [ozpl] standard_name = ozone_forcing long_name = ozone forcing data - units = various + units = mixed dimensions = (horizontal_loop_extent,vertical_dimension_of_ozone_forcing_data,number_of_coefficients_in_ozone_forcing_data) type = real kind = kind_phys [h2opl] standard_name = stratospheric_water_vapor_forcing long_name = water forcing data - units = various + units = mixed dimensions = (horizontal_loop_extent,vertical_dimension_of_h2o_forcing_data,number_of_coefficients_in_h2o_forcing_data) type = real kind = kind_phys @@ -5788,6 +5811,14 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension,number_of_aerosol_tracers_MG) type = real kind = kind_phys +[aod_gf] + standard_name = aerosol_optical_depth_for_grell_freitas_deep_convection + long_name = aerosol optical depth used in Grell-Freitas Convective Parameterization + units = none + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) [imap] standard_name = map_of_block_column_number_to_global_i_index long_name = map of local index ix to global index i for this block @@ -6043,6 +6074,13 @@ dimensions = (horizontal_loop_extent) type = integer active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) +[cactiv_m] + standard_name = counter_for_grell_freitas_mid_level_convection + long_name = mid-level convective activity memory + units = none + dimensions = (horizontal_loop_extent) + type = integer + active = (control_for_deep_convection_scheme == identifier_for_grell_freitas_deep_convection) [CLDFRA_BL] standard_name = subgrid_scale_cloud_area_fraction_in_atmosphere_layer long_name = subgrid cloud fraction from PBL scheme @@ -6347,7 +6385,7 @@ [fluxr] standard_name = cumulative_radiation_diagnostic long_name = time-accumulated 2D radiation-related diagnostic fields - units = various + units = mixed dimensions = (horizontal_loop_extent,number_of_diagnostics_variables_for_radiation) type = real kind = kind_phys @@ -6391,6 +6429,14 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[paha] + standard_name = cumulative_precipitation_advected_heat_flux_multiplied_by_timestep + long_name = cumulative precipitation advected heat flux multiplied by timestep + units = W m-2 s + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) [transa] standard_name = cumulative_transpiration_flux_multiplied_by_timestep long_name = cumulative total plant transpiration rate multiplied by timestep @@ -6567,6 +6613,35 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[tecan] + standard_name = total_evaporation_of_intercepted_water + long_name = total evaporation of intercepted water + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[tetran] + standard_name = total_transpiration_rate + long_name = total transpiration rate + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[tedir] + standard_name = total_soil_surface_evaporation_rate + long_name = total soil surface evaporation rate + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[twa] + standard_name = total_water_storage_in_aquifer + long_name = total water storage in aquifer + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) [cldwrk] standard_name = cumulative_cloud_work_function long_name = cumulative cloud work function (valid only with sas) @@ -6854,6 +6929,14 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[pahi] + standard_name = instantaneous_total_precipitation_advected_heat + long_name = instantaneous precipitation advected heat - total + units = W m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + active = (control_for_land_surface_scheme == identifier_for_noahmp_land_surface_scheme) [epi] standard_name = instantaneous_surface_potential_evaporation long_name = instantaneous sfc potential evaporation @@ -6928,7 +7011,7 @@ [dtend] standard_name = cumulative_change_of_state_variables long_name = diagnostic tendencies for state variables - units = various + units = mixed dimensions = (horizontal_loop_extent,vertical_layer_dimension,cumulative_change_of_state_variables_outer_index_max) type = real kind = kind_phys @@ -6964,14 +7047,14 @@ [rh02max] standard_name = maximum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = maximum relative humidity at 2m over maximum hourly time interval - units = % + units = frac dimensions = (horizontal_loop_extent) type = real kind = kind_phys [rh02min] standard_name = minimum_relative_humidity_at_2m_over_maximum_hourly_time_interval long_name = minumum relative humidity at 2m over maximum hourly time interval - units = % + units = frac dimensions = (horizontal_loop_extent) type = real kind = kind_phys @@ -7034,6 +7117,48 @@ dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation) type = real kind = kind_phys +[cldfra2d] + standard_name = max_in_column_cloud_fraction + long_name = instantaneous 2D (max-in-column) cloud fraction + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[lwp_ex] + standard_name = liq_water_path_from_microphysics + long_name = total liquid water path from explicit microphysics + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[iwp_ex] + standard_name = ice_water_path_from_microphysics + long_name = total ice water path from explicit microphysics + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[lwp_fc] + standard_name = liq_water_path_from_cloud_fraction + long_name = total liquid water path from cloud fraction scheme + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[iwp_fc] + standard_name = ice_water_path_from_cloud_fraction + long_name = total ice water path from cloud fraction scheme + units = kg m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[total_albedo] + standard_name = total_sky_albedo + long_name = total sky albedo at toa + units = frac + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys [edmf_a] standard_name = emdf_updraft_area long_name = updraft area from mass flux scheme @@ -7274,7 +7399,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [dvdt_ogw] standard_name = tendency_of_y_wind_due_to_mesoscale_orographic_gravity_wave_drag long_name = y momentum tendency from meso scale ogw @@ -7282,7 +7407,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [du_ogwcol] standard_name = vertically_integrated_x_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated x momentum flux from meso scale ogw @@ -7290,7 +7415,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [dv_ogwcol] standard_name = vertically_integrated_y_momentum_flux_due_to_mesoscale_orographic_gravity_wave_drag long_name = integrated y momentum flux from meso scale ogw @@ -7298,7 +7423,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [dudt_obl] standard_name = tendency_of_x_momentum_due_to_blocking_drag long_name = x momentum tendency from blocking drag @@ -7306,7 +7431,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [dvdt_obl] standard_name = tendency_of_y_momentum_due_to_blocking_drag long_name = y momentum tendency from blocking drag @@ -7314,7 +7439,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [du_oblcol] standard_name = vertically_integrated_x_momentum_flux_due_to_blocking_drag long_name = integrated x momentum flux from blocking drag @@ -7322,7 +7447,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22) [dv_oblcol] standard_name = vertically_integrated_y_momentum_flux_due_to_blocking_drag long_name = integrated y momentum flux from blocking drag @@ -7330,7 +7455,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dudt_oss] standard_name = tendency_of_x_momentum_due_to_small_scale_gravity_wave_drag long_name = x momentum tendency from small scale gwd @@ -7338,7 +7463,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dvdt_oss] standard_name = tendency_of_y_momentum_due_to_small_scale_gravity_wave_drag long_name = y momentum tendency from small scale gwd @@ -7346,7 +7471,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [du_osscol] standard_name = vertically_integrated_x_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated x momentum flux from small scale gwd @@ -7354,7 +7479,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dv_osscol] standard_name = vertically_integrated_y_momentum_flux_due_to_small_scale_gravity_wave_drag long_name = integrated y momentum flux from small scale gwd @@ -7362,7 +7487,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dudt_ofd] standard_name = tendency_of_x_momentum_due_to_form_drag long_name = x momentum tendency from form drag @@ -7370,7 +7495,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dvdt_ofd] standard_name = tendency_of_y_momentum_due_to_form_drag long_name = y momentum tendency from form drag @@ -7378,7 +7503,7 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [du_ofdcol] standard_name = vertically_integrated_x_momentum_flux_due_to_form_drag long_name = integrated x momentum flux from form drag @@ -7386,7 +7511,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dv_ofdcol] standard_name = vertically_integrated_y_momentum_flux_due_to_form_drag long_name = integrated y momentum flux from form drag @@ -7394,7 +7519,7 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys - active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33 .or. control_for_drag_suite_gravity_wave_drag==22 .or. control_for_drag_suite_gravity_wave_drag==3 .or. control_for_drag_suite_gravity_wave_drag==2) + active = (flag_for_ugwp_version_1 .or. control_for_drag_suite_gravity_wave_drag==33) [dv3dt_ngw] standard_name = time_integral_of_change_in_y_wind_due_to_nonstationary_gravity_wave long_name = time integral of change in y wind due to NGW @@ -8120,13 +8245,6 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys -[semis_water] - standard_name = surface_longwave_emissivity_over_water - long_name = surface lw emissivity in fraction over water - units = frac - dimensions = (horizontal_loop_extent) - type = real - kind = kind_phys [ep1d] standard_name = surface_upward_potential_latent_heat_flux long_name = surface upward potential latent heat flux @@ -8190,10 +8308,38 @@ dimensions = (horizontal_loop_extent) type = real kind = kind_phys +[pah] + standard_name = total_precipitation_advected_heat + long_name = precipitation advected heat - total + units = W m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[ecan] + standard_name = evaporation_of_intercepted_water + long_name = evaporation of intercepted water + units = kg m-2 s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[etran] + standard_name = transpiration_rate + long_name = transpiration rate + units = kg m-2 s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys +[edir] + standard_name = soil_surface_evaporation_rate + long_name = soil surface evaporation rate + units = kg m-2 s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys [faerlw] standard_name = aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 - units = various + units = mixed dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_longwave_radiation,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys @@ -8221,7 +8367,7 @@ [faersw] standard_name = aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 - units = various + units = mixed dimensions = (horizontal_loop_extent,adjusted_vertical_layer_dimension_for_radiation,number_of_aerosol_bands_for_shortwave_radiation,number_of_aerosol_output_fields_for_shortwave_radiation) type = real kind = kind_phys @@ -9839,7 +9985,7 @@ [q_lay] standard_name = water_vapor_mixing_ratio long_name = water vaport mixing ratio - units = kg/kg + units = kg kg-1 dimensions = (horizontal_loop_extent,vertical_layer_dimension) type = real kind = kind_phys @@ -9924,18 +10070,22 @@ type = real kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) -[ipsdsw0] - standard_name = initial_permutation_seed_sw - long_name = initial seed for McICA SW - units = none - dimensions = () - type = integer -[ipsdlw0] - standard_name = initial_permutation_seed_lw - long_name = initial seed for McICA LW - units = none - dimensions = () - type = integer +[fluxlwUP_allsky] + standard_name = RRTMGP_lw_flux_profile_upward_allsky + long_name = RRTMGP upward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) +[fluxlwDOWN_allsky] + standard_name = RRTMGP_lw_flux_profile_downward_allsky + long_name = RRTMGP downward longwave all-sky flux profile + units = W m-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + active = (flag_for_rrtmgp_radiation_scheme) [fluxlwUP_clrsky] standard_name = RRTMGP_lw_flux_profile_upward_clrsky long_name = RRTMGP upward longwave clr-sky flux profile @@ -10001,7 +10151,7 @@ [aerosolslw] standard_name = RRTMGP_aerosol_optical_properties_for_longwave_bands_01_16 long_name = aerosol optical properties for longwave bands 01-16 - units = various + units = mixed dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_longwave_bands,number_of_aerosol_output_fields_for_longwave_radiation) type = real kind = kind_phys @@ -10030,7 +10180,7 @@ [aerosolssw] standard_name = RRTMGP_aerosol_optical_properties_for_shortwave_bands_01_16 long_name = aerosol optical properties for shortwave bands 01-16 - units = various + units = mixed dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands, number_of_aerosol_output_fields_for_shortwave_radiation) type = real kind = kind_phys @@ -10056,20 +10206,6 @@ dimensions = (horizontal_loop_extent,vertical_layer_dimension, number_of_shortwave_bands) type = real kind = kind_phys -[icseed_lw] - standard_name = seed_random_numbers_lw_for_RRTMGP - long_name = seed for random number generation for longwave radiation - units = none - dimensions = (horizontal_loop_extent) - type = integer - active = (flag_for_rrtmgp_radiation_scheme) -[icseed_sw] - standard_name = seed_random_numbers_sw_for_RRTMGP - long_name = seed for random number generation for shortwave radiation - units = none - dimensions = (horizontal_loop_extent) - type = integer - active = (flag_for_rrtmgp_radiation_scheme) [precip_frac] standard_name = precipitation_fraction_by_layer long_name = precipitation fraction in each layer @@ -10209,7 +10345,7 @@ kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) [sfc_alb_uvvis_dir] - standard_name = surface_albedo_uvvis_dir + standard_name = surface_albedo_uvvis_direct long_name = UVVIS (direct) surface albedo (sfc_alb_uvvis_dir) units = none dimensions = (number_of_shortwave_bands,horizontal_loop_extent) @@ -10217,7 +10353,7 @@ kind = kind_phys active = (flag_for_rrtmgp_radiation_scheme) [sfc_alb_uvvis_dif] - standard_name = surface_albedo_uvvis_dif + standard_name = surface_albedo_uvvis_diffuse long_name = UVVIS (diffuse) surface albedo (sfc_alb_uvvis_dif) units = none dimensions = (number_of_shortwave_bands,horizontal_loop_extent) @@ -10401,4 +10537,3 @@ units = none dimensions = () type = integer -