diff --git a/parm/jcb-gdas b/parm/jcb-gdas index 77f9e126f..0d66231f3 160000 --- a/parm/jcb-gdas +++ b/parm/jcb-gdas @@ -1 +1 @@ -Subproject commit 77f9e126f47b0f5751ae0cf4f811629e99be7532 +Subproject commit 0d66231f35143d61a4dcca468945e8944bf1c3bc diff --git a/parm/soca/gridgen/gridgen.yaml b/parm/soca/gridgen/gridgen.yaml index 1b6018c9e..34fbdeca6 100644 --- a/parm/soca/gridgen/gridgen.yaml +++ b/parm/soca/gridgen/gridgen.yaml @@ -1,5 +1,5 @@ geometry: geom_grid_file: soca_gridspec.nc - full_init: true mom6_input_nml: mom_input.nml - fields metadata: fields_metadata.yaml \ No newline at end of file + fields metadata: fields_metadata.yaml + rossby file: rossrad.nc diff --git a/sorc/fv3-jedi b/sorc/fv3-jedi index 35a2d4a84..b5dd092e2 160000 --- a/sorc/fv3-jedi +++ b/sorc/fv3-jedi @@ -1 +1 @@ -Subproject commit 35a2d4a845227de2a70781474e39617727c1f4e6 +Subproject commit b5dd092e22a1ec8efdddc2bfbd58628b695ad1c4 diff --git a/sorc/ioda b/sorc/ioda index 206eba708..d4dc2cdaa 160000 --- a/sorc/ioda +++ b/sorc/ioda @@ -1 +1 @@ -Subproject commit 206eba7084c08a3bc9a1c6ccbbff3e63d7cb602e +Subproject commit d4dc2cdaa944f2a8220fa5207968f0dab6c8b183 diff --git a/sorc/iodaconv b/sorc/iodaconv index c0330c8a7..7fb44969a 160000 --- a/sorc/iodaconv +++ b/sorc/iodaconv @@ -1 +1 @@ -Subproject commit c0330c8a7d8ba51f74b98c27ce1ddb2db2a276ab +Subproject commit 7fb44969a419348ba07abad1544b443212fc8d6c diff --git a/sorc/oops b/sorc/oops index a12ec3c30..db0fc43c7 160000 --- a/sorc/oops +++ b/sorc/oops @@ -1 +1 @@ -Subproject commit a12ec3c305ebe77bb5862f475c7c523988e18b14 +Subproject commit db0fc43c70f4b26b7e77782e8270a754d2a2aed7 diff --git a/sorc/saber b/sorc/saber index 12b5a2602..a2c8e1c78 160000 --- a/sorc/saber +++ b/sorc/saber @@ -1 +1 @@ -Subproject commit 12b5a2602d7fa74c32c4992f805ce724fe76c89b +Subproject commit a2c8e1c78faf045613b7a5c15627e31fe947dc9f diff --git a/sorc/soca b/sorc/soca index 18f7813dc..98e2be9f8 160000 --- a/sorc/soca +++ b/sorc/soca @@ -1 +1 @@ -Subproject commit 18f7813dc4eb5033dbba7bc0da65e3c9166fb5a4 +Subproject commit 98e2be9f83fe45453a34a24b6420b21a7cb6e0c5 diff --git a/sorc/ufo b/sorc/ufo index 1f5a4ce81..d90c514fd 160000 --- a/sorc/ufo +++ b/sorc/ufo @@ -1 +1 @@ -Subproject commit 1f5a4ce81e10295cfc911ebb93c6c431d18e0314 +Subproject commit d90c514fdc1d1e5cd7a2a88384c0e634da78987f diff --git a/sorc/vader b/sorc/vader index 7688c0700..8210eccf7 160000 --- a/sorc/vader +++ b/sorc/vader @@ -1 +1 @@ -Subproject commit 7688c07004912b964c479b4387bd3084cea31024 +Subproject commit 8210eccf77b80f51cce470ecdd5dd4cc2ec646bc diff --git a/test/atm/global-workflow/3dvar.ref b/test/atm/global-workflow/3dvar.ref index e5de4f09d..e0e5e1626 100644 --- a/test/atm/global-workflow/3dvar.ref +++ b/test/atm/global-workflow/3dvar.ref @@ -1,17 +1,17 @@ CostJb : Nonlinear Jb = 0.0000000000000000e+00 -CostJo : Nonlinear Jo(AMSUA N19) = 3.8984270736441467e+04, nobs = 74275, Jo/n = 5.2486396144653613e-01, err = 6.3650648936327991e+00 +CostJo : Nonlinear Jo(AMSUA N19) = 3.9490015258330794e+04, nobs = 73667, Jo/n = 5.3606112992697941e-01, err = 6.2697697603629345e+00 CostJo : Nonlinear Jo(sondes) = 1.0738490911289638e+04, nobs = 4255, Jo/n = 2.5237346442513839e+00, err = 1.0981085630539836e+01 -CostFunction: Nonlinear J = 4.9722761647731109e+04 -DRPCGMinimizer: reduction in residual norm = 9.6484392730339263e-01 +CostFunction: Nonlinear J = 5.0228506169620436e+04 +DRPCGMinimizer: reduction in residual norm = 9.6305250910882700e-01 CostFunction::addIncrement: Analysis: ---------------------------------------------------------------------------------------------------- State print | number of fields = 22 | cube sphere face size: C48 -eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288534099e+01 -northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891570887e+00 -air_temperature | Min:+1.7482158077318462e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883089124e+02 +eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288534095e+01 +northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891570869e+00 +air_temperature | Min:+1.7482158077318448e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883092669e+02 air_pressure_thickness | Min:+6.0599999874109178e-01 Max:+1.7760098554198755e+03 RMS:+9.5680601590204810e+02 surface_pressure | Min:+5.3297486514404744e+04 Max:+1.0397927292902800e+05 RMS:+9.8896232762674656e+04 -specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792636981582193e-03 +specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792636816418408e-03 cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.2024392024662985e-03 RMS:+1.4396968866569995e-05 cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.5935686618789048e-03 RMS:+4.1931345590543333e-05 ozone_mass_mixing_ratio | Min:+1.1998327271379204e-08 Max:+1.7808431790670831e-05 RMS:+4.4947917149861064e-06 @@ -32,31 +32,31 @@ f10m | Min:+9.4613586695410434e-01 Max:+ Obs bias coefficients: --------------------------------------------------------------- - constant: Min= -1.2490630149841309, Max= 1.6242779492736057, Norm= 3.1216962856027304 - lapse_rate_order_2: Min= -6.0771207806339094, Max= 52.3767318715110477, Norm= 52.7793275314599910 - lapse_rate: Min= -6.1173920629465659, Max= 0.4750269950800435, Norm= 6.1658157312728985 - emissivity: Min= -0.2395000010728836, Max= 10.5581263135712575, Norm= 10.5655898122368264 - scan_angle_order_4: Min= -7.9506011008096911, Max= 2.3034050466999081, Norm= 13.1727465012547444 - scan_angle_order_3: Min= -1.1903680560584049, Max= 2.3802189822803275, Norm= 3.1970135720803450 - scan_angle_order_2: Min= -5.1212630271747548, Max= 2.9977130889532191, Norm= 7.3569496454063597 - scan_angle: Min= -0.6766870022405442, Max= 0.0732169970537269, Norm= 1.1485053152110289 + constant: Min= -1.2424509525299072, Max= 1.6504349708035770, Norm= 3.1030146353133463 + lapseRate_order_2: Min= -7.0903420445872838, Max= 46.3166084284223771, Norm= 47.0185597979528609 + lapseRate: Min= -5.5814771650607220, Max= 1.2464430332789806, Norm= 5.7524772942406086 + emissivityJacobian: Min= -1.0039629936218262, Max= 10.5191706304246591, Norm= 10.5711704384468028 +sensorScanAngle_order_4: Min= -8.0552864073222832, Max= 2.4945130349138593, Norm= 13.5132453944315909 +sensorScanAngle_order_3: Min= -1.1528069971066446, Max= 2.1735479829142181, Norm= 3.0673534349517819 +sensorScanAngle_order_2: Min= -5.1097259521664853, Max= 2.8632600308292808, Norm= 7.2817410561999560 + sensorScanAngle: Min= -0.6898530126095289, Max= 0.0655509978252007, Norm= 1.1442823316972326 --------------------------------------------------------------- -CostJb : Nonlinear Jb = 0.0000003263133461 -CostJo : Nonlinear Jo(AMSUA N19) = 38981.7238460305161425, nobs = 74275, Jo/n = 0.5248296714376374, err = 6.3650648936327991 -CostJo : Nonlinear Jo(sondes) = 10687.2756506645455374, nobs = 4255, Jo/n = 2.5116981552678133, err = 10.9810856305398357 -CostFunction: Nonlinear J = 49668.9994970213738270 -DRPCGMinimizer: reduction in residual norm = 1.0147575953754833 +CostJb : Nonlinear Jb = 0.0000003247124839 +CostJo : Nonlinear Jo(AMSUA N19) = 39487.6033905208023498, nobs = 73667, Jo/n = 0.5360283897881114, err = 6.2697697603629345 +CostJo : Nonlinear Jo(sondes) = 10687.3021478507725988, nobs = 4255, Jo/n = 2.5117043825736247, err = 10.9810856305398357 +CostFunction: Nonlinear J = 50174.9055386962863849 +DRPCGMinimizer: reduction in residual norm = 1.0067413227955442 CostFunction::addIncrement: Analysis: ---------------------------------------------------------------------------------------------------- State print | number of fields = 22 | cube sphere face size: C48 -eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288542711e+01 -northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891586359e+00 -air_temperature | Min:+1.7482158077318311e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883200961e+02 +eastward_wind | Min:-5.5495644220059390e+01 Max:+8.4934651204487366e+01 RMS:+1.6388250288542654e+01 +northward_wind | Min:-7.3712421229093422e+01 Max:+7.6984825502186652e+01 RMS:+8.1424144891586234e+00 +air_temperature | Min:+1.7482158077318232e+02 Max:+3.1467235233685437e+02 RMS:+2.4978424883219918e+02 air_pressure_thickness | Min:+6.0599999874109178e-01 Max:+1.7760098554198755e+03 RMS:+9.5680601590204810e+02 surface_pressure | Min:+5.3297486514404744e+04 Max:+1.0397927292902800e+05 RMS:+9.8896232762674656e+04 -specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792638362681448e-03 +specific_humidity | Min:+0.0000000000000000e+00 Max:+2.0041369334954085e-02 RMS:+4.7792637405692116e-03 cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+1.2024392024662985e-03 RMS:+1.4396968866569995e-05 cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.5935686618789048e-03 RMS:+4.1931345590543333e-05 ozone_mass_mixing_ratio | Min:+1.1998327271379204e-08 Max:+1.7808431790670831e-05 RMS:+4.4947917149861064e-06 @@ -77,18 +77,18 @@ f10m | Min:+9.4613586695410434e-01 Max:+ Obs bias coefficients: --------------------------------------------------------------- - constant: Min= -1.2490630149841309, Max= 1.6242779490057870, Norm= 3.1216962826704004 - lapse_rate_order_2: Min= -6.0771207792168234, Max= 52.3767318668067006, Norm= 52.7793275266354911 - lapse_rate: Min= -6.1173920620497713, Max= 0.4750269957036114, Norm= 6.1658157301802641 - emissivity: Min= -0.2395000010728836, Max= 10.5581256964462273, Norm= 10.5655891955375107 - scan_angle_order_4: Min= -7.9506011003013111, Max= 2.3034050477855654, Norm= 13.1727464989080296 - scan_angle_order_3: Min= -1.1903680549739593, Max= 2.3802189803928178, Norm= 3.1970135704212637 - scan_angle_order_2: Min= -5.1212630270944297, Max= 2.9977130887912211, Norm= 7.3569496444930564 - scan_angle: Min= -0.6766870025059790, Max= 0.0732169969027750, Norm= 1.1485053159201970 + constant: Min= -1.2424509525299072, Max= 1.6504349705701049, Norm= 3.1030146330531774 + lapseRate_order_2: Min= -7.0903420434846316, Max= 46.3166084260648887, Norm= 47.0185597955718677 + lapseRate: Min= -5.5814771643207211, Max= 1.2464430335558840, Norm= 5.7524772934110207 + emissivityJacobian: Min= -1.0039629936218262, Max= 10.5191700403026349, Norm= 10.5711698512230932 +sensorScanAngle_order_4: Min= -8.0552864066518524, Max= 2.4945130353434313, Norm= 13.5132453918536388 +sensorScanAngle_order_3: Min= -1.1528069962369289, Max= 2.1735479817619940, Norm= 3.0673534336938850 +sensorScanAngle_order_2: Min= -5.1097259522434877, Max= 2.8632600312042698, Norm= 7.2817410556587614 + sensorScanAngle: Min= -0.6898530128249588, Max= 0.0655509976984332, Norm= 1.1442823320888615 --------------------------------------------------------------- -CostJb : Nonlinear Jb = 0.0000033688688972 -CostJo : Nonlinear Jo(AMSUA N19) = 38970.3026556682743831, nobs = 74275, Jo/n = 0.5246759024660824, err = 6.3650648936327991 -CostJo : Nonlinear Jo(sondes) = 10639.1209516101644112, nobs = 4255, Jo/n = 2.5003809521998037, err = 10.9810856305398357 -CostFunction: Nonlinear J = 49609.4236106473108521 +CostJb : Nonlinear Jb = 0.0000033199535370 +CostJo : Nonlinear Jo(AMSUA N19) = 39476.8510820809169672, nobs = 73667, Jo/n = 0.5358824315104581, err = 6.2697697603629345 +CostJo : Nonlinear Jo(sondes) = 10639.1482810630404856, nobs = 4255, Jo/n = 2.5003873751029473, err = 10.9810856305398357 +CostFunction: Nonlinear J = 50115.9993664639114286 diff --git a/test/atm/global-workflow/lgetkf.ref b/test/atm/global-workflow/lgetkf.ref index 506c0c813..a6cff30df 100644 --- a/test/atm/global-workflow/lgetkf.ref +++ b/test/atm/global-workflow/lgetkf.ref @@ -80,31 +80,31 @@ surface_northward_wind | Min:-1.4183550286832059e+01 Max:+ f10m | Min:+9.2995810057091766e-01 Max:+1.0787102983488339e+00 RMS:+9.9539268028154582e-01 ---------------------------------------------------------------------------------------------------- H(x) for member 1: -AMSUA N19 nobs= 83277 Min=201.867856449266, Max=282.0067070796676, RMS=233.8395702227402 +AMSUA N19 nobs= 83277 Min=201.804879948996, Max=282.3801121316517, RMS=233.854410931206 sondes nobs= 8481 Min=-33.72854932079181, Max=309.9716288420037, RMS=141.2118598915683 H(x) for member 2: -AMSUA N19 nobs= 83277 Min=201.7137808797608, Max=281.5706320956667, RMS=233.8396302310865 +AMSUA N19 nobs= 83277 Min=201.6471388000342, Max=281.937746664208, RMS=233.854501174985 sondes nobs= 8481 Min=-30.53139157018941, Max=310.1652090473367, RMS=141.1987914521134 H(x) for member 3: -AMSUA N19 nobs= 83277 Min=201.6466089031518, Max=281.7411453383614, RMS=233.841237886985 +AMSUA N19 nobs= 83277 Min=201.5829490118361, Max=282.1251907433116, RMS=233.8561550394155 sondes nobs= 8481 Min=-32.8575760671954, Max=310.4005466290033, RMS=141.1778598834968 H(x) ensemble background mean: -AMSUA N19 nobs= 83277 Min=201.767617763992, Max=281.764603524317, RMS=233.8401187797573 +AMSUA N19 nobs= 83277 Min=201.7041828462218, Max=282.1338202533037, RMS=233.8549949917443 sondes nobs= 8481 Min=-32.28649706124742, Max=310.1791281727812, RMS=141.1945767641295 background y - H(x): -AMSUA N19 nobs= 83254 Min=-39.30084110186959, Max=14.76474343816579, RMS=1.484386599967397 +AMSUA N19 nobs= 83254 Min=-40.12245710945035, Max=14.39199700011554, RMS=1.519533651744071 sondes nobs= 3950 Min=-16.7986628776744, Max=16.07421631717779, RMS=4.060196677972983 @@ -139,16 +139,16 @@ f10m | Min:+9.3258902621206641e-01 Max:+ Analysis mean : ---------------------------------------------------------------------------------------------------- State print | number of fields = 23 | cube sphere face size: C48 -eastward_wind | Min:-5.0291091239258996e+01 Max:+8.8974835429946992e+01 RMS:+1.5969146223857392e+01 -northward_wind | Min:-7.1207756314596480e+01 Max:+7.7474649441430500e+01 RMS:+7.7121664031692445e+00 -air_temperature | Min:+1.7652661362975533e+02 Max:+3.1526920633902677e+02 RMS:+2.4991104122253967e+02 -layer_thickness | Min:-2.8742236223448945e+03 Max:-1.5811043880008970e+01 RMS:+9.8305911850886582e+02 -air_pressure_thickness | Min:+6.0599999954215089e-01 Max:+1.7747701325883327e+03 RMS:+9.5671866301370255e+02 -surface_pressure | Min:+5.3308178524829898e+04 Max:+1.0391190830956653e+05 RMS:+9.8891859479665873e+04 -specific_humidity | Min:+0.0000000000000000e+00 Max:+1.9531761470252519e-02 RMS:+4.8542934028708851e-03 -cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+3.9005078876250314e-04 RMS:+1.0464822449614852e-05 -cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.8113630797591289e-03 RMS:+3.5137404071414924e-05 -ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7891446519775333e-05 RMS:+4.4959623220880551e-06 +eastward_wind | Min:-5.0314296163589411e+01 Max:+8.9520283534845248e+01 RMS:+1.5969822701711045e+01 +northward_wind | Min:-7.0598057039399649e+01 Max:+7.7258707141286905e+01 RMS:+7.7152005496513336e+00 +air_temperature | Min:+1.7652661359986743e+02 Max:+3.1531108492384953e+02 RMS:+2.4990923387940023e+02 +layer_thickness | Min:-2.8742236222923871e+03 Max:-1.5807388968764794e+01 RMS:+9.8306096988359968e+02 +air_pressure_thickness | Min:+6.0599999954215089e-01 Max:+1.7748141582192256e+03 RMS:+9.5672395981966145e+02 +surface_pressure | Min:+5.3308178524829898e+04 Max:+1.0391190831760869e+05 RMS:+9.8891859479755614e+04 +specific_humidity | Min:+0.0000000000000000e+00 Max:+1.9531761470252519e-02 RMS:+4.8544729623551516e-03 +cloud_liquid_ice | Min:+0.0000000000000000e+00 Max:+3.9113337546012496e-04 RMS:+1.0484801913924773e-05 +cloud_liquid_water | Min:+0.0000000000000000e+00 Max:+1.7687974314556485e-03 RMS:+3.5182102743737092e-05 +ozone_mass_mixing_ratio | Min:+0.0000000000000000e+00 Max:+1.7891446519775333e-05 RMS:+4.4960850274235157e-06 sfc_geopotential_height_times_grav | Min:-2.6495993813133236e+02 Max:+5.1678555530273436e+04 RMS:+6.1813840931281156e+03 slmsk | Min:+0.0000000000000000e+00 Max:+2.0000000000000000e+00 RMS:+6.5853328538727862e-01 sheleg | Min:+0.0000000000000000e+00 Max:+3.2527521006769342e+02 RMS:+2.2874231579198337e+01 @@ -164,34 +164,34 @@ surface_northward_wind | Min:-1.4483927323189917e+01 Max:+ f10m | Min:+9.3258902621206641e-01 Max:+1.0787625575968645e+00 RMS:+9.9540515270826369e-01 ---------------------------------------------------------------------------------------------------- H(x) for member 1: -AMSUA N19 nobs= 83277 Min=201.948249566513, Max=281.9939007255653, RMS=233.8812606058921 +AMSUA N19 nobs= 83277 Min=201.9208586792586, Max=282.3579536919763, RMS=233.8976056773868 -sondes nobs= 8481 Min=-32.57419789664539, Max=310.0585910080372, RMS=141.1835372274868 +sondes nobs= 8481 Min=-32.66983240205785, Max=310.0570501450555, RMS=141.1835316764812 H(x) for member 2: -AMSUA N19 nobs= 83277 Min=201.7220008170584, Max=281.5396769750011, RMS=233.8797643864029 +AMSUA N19 nobs= 83277 Min=201.7345379176144, Max=281.9023598947047, RMS=233.8960380184029 -sondes nobs= 8481 Min=-30.01531933777411, Max=310.1616281283975, RMS=141.1677770998922 +sondes nobs= 8481 Min=-30.07259215371426, Max=310.1599784787079, RMS=141.1676733561855 H(x) for member 3: -AMSUA N19 nobs= 83277 Min=201.7936859824386, Max=281.798062021774, RMS=233.8820591954841 +AMSUA N19 nobs= 83277 Min=201.7998764455959, Max=282.184064758957, RMS=233.8985807512489 -sondes nobs= 8481 Min=-32.21444465700474, Max=310.4926390655562, RMS=141.1518466835251 +sondes nobs= 8481 Min=-32.27178142413072, Max=310.4911572014772, RMS=141.1517212149465 H(x) ensemble analysis mean: -AMSUA N19 nobs= 83277 Min=201.8698936751222, Max=281.7332912576108, RMS=233.8810051433246 +AMSUA N19 nobs= 83277 Min=201.8701779093396, Max=282.0896557484387, RMS=233.8973851135837 -sondes nobs= 8481 Min=-31.5986820508983, Max=310.2376194006636, RMS=141.1665087234307 +sondes nobs= 8481 Min=-31.655840171866, Max=310.2360619417469, RMS=141.1664306255886 analysis y - H(x): -AMSUA N19 nobs= 83254 Min=-39.2511998193601, Max=14.76187988153276, RMS=1.466781023101904 +AMSUA N19 nobs= 83254 Min=-40.0356958028041, Max=14.39145832081221, RMS=1.500134698029984 -sondes nobs= 3950 Min=-17.36927867050949, Max=15.32167936052966, RMS=3.976041107561534 +sondes nobs= 3950 Min=-17.36927867050949, Max=15.32061647997004, RMS=3.979033229098516 -ombg RMS: 1.688286984844696 -oman RMS: 1.664354500684967 +ombg RMS: 1.717879381941815 +oman RMS: 1.692816947963948 diff --git a/test/atm/test_convert_gsi_satbias.sh b/test/atm/test_convert_gsi_satbias.sh index 9154d213f..eae8269e6 100755 --- a/test/atm/test_convert_gsi_satbias.sh +++ b/test/atm/test_convert_gsi_satbias.sh @@ -23,7 +23,7 @@ dump: gdas gsi_bc_root: $testrun/input ufo_bc_root: $testrun/out work_root: $testrun/work -satbias2ioda: $builddir/bin/satbias2ioda.x +satbias2ioda: $builddir/../bin/satbias2ioda.x EOF # run the script diff --git a/test/soca/gw/static.sh b/test/soca/gw/static.sh index 30e6b25c9..521ace074 100755 --- a/test/soca/gw/static.sh +++ b/test/soca/gw/static.sh @@ -14,7 +14,8 @@ lowres=${project_source_dir}/sorc/soca/test/Data cp -L ${lowres}/workdir/{diag_table,field_table} ${soca_static} cp -L ${project_source_dir}/test/soca/fix/MOM_input ${soca_static} -cp -L ${lowres}/rossrad.dat ${soca_static} +cp -L ${lowres}/rossrad.nc ${soca_static} +rm -f ${soca_static}/rossrad.dat cp -L ${project_source_dir}/parm/soca/fields_metadata.yaml ${soca_static} cp -L ${project_source_dir}/sorc/soca/test/testinput/obsop_name_map.yml ${soca_static}/obsop_name_map.yaml cp -L ${lowres}/72x35x25/input.nml ${soca_static}/inputnml diff --git a/ush/run_satbias_conv.py b/ush/run_satbias_conv.py index a1b626f1f..aa749f322 100755 --- a/ush/run_satbias_conv.py +++ b/ush/run_satbias_conv.py @@ -16,15 +16,15 @@ 'constant', 'zenith_angle', 'cloud_liquid_water', - 'lapse_rate_order_2', - 'lapse_rate', + 'lapseRate_order_2', + 'lapseRate', 'cosine_of_latitude_times_orbit_node', 'sine_of_latitude', - 'emissivity', - 'scan_angle_order_4', - 'scan_angle_order_3', - 'scan_angle_order_2', - 'scan_angle', + 'emissivityJacobian', + 'sensorScanAngle_order_4', + 'sensorScanAngle_order_3', + 'sensorScanAngle_order_2', + 'sensorScanAngle', ] diff --git a/ush/ufsda/stage.py b/ush/ufsda/stage.py index 4163fa1b2..09379f386 100644 --- a/ush/ufsda/stage.py +++ b/ush/ufsda/stage.py @@ -25,8 +25,8 @@ def soca_fix(config): fix_files = [] # copy Rossby Radius file - fix_files.append([os.path.join(config['soca_input_fix_dir'], 'rossrad.dat'), - os.path.join(config['stage_dir'], 'rossrad.dat')]) + fix_files.append([os.path.join(config['soca_input_fix_dir'], 'rossrad.nc'), + os.path.join(config['stage_dir'], 'rossrad.nc')]) # link name lists fix_files.append([os.path.join(config['soca_input_fix_dir'], 'field_table'), os.path.join(config['stage_dir'], 'field_table')]) diff --git a/utils/soca/gdas_soca_diagb.h b/utils/soca/gdas_soca_diagb.h index 62cff84f7..c1e46c250 100644 --- a/utils/soca/gdas_soca_diagb.h +++ b/utils/soca/gdas_soca_diagb.h @@ -300,12 +300,12 @@ namespace gdasapp { } // Update the layer thickness halo - nodeColumns.haloExchange(xbFs["hocn"]); + xbFs["hocn"].haloExchange(); // Loop through variables for (auto & var : configD.socaVars.variables()) { // Update the halo - nodeColumns.haloExchange(xbFs[var]); + xbFs[var].haloExchange(); // Skip the layer thickness variable if (var == "hocn") { @@ -361,7 +361,7 @@ namespace gdasapp { // Horizontal averaging for (int iter = 0; iter < configD.niterHoriz; ++iter) { // Update the halo points - nodeColumns.haloExchange(bkgErrFs[var]); + bkgErrFs[var].haloExchange(); auto stdDevBkg = atlas::array::make_view(bkgErrFs[var]); // Loops through nodes and levels diff --git a/utils/soca/gdas_socahybridweights.h b/utils/soca/gdas_socahybridweights.h index 33ad8620e..2aec656cf 100644 --- a/utils/soca/gdas_socahybridweights.h +++ b/utils/soca/gdas_socahybridweights.h @@ -27,34 +27,31 @@ namespace gdasapp { // Create a simple mask based on a Gaussian function void gaussianMask(const soca::Geometry & geom, soca::Increment & gaussIncr, eckit::LocalConfiguration conf) { - // Get the 2D grid - std::vector lats; - std::vector lons; - bool halo = true; - geom.latlon(lats, lons, halo); - - // Prepare fieldset from increment - atlas::FieldSet gaussIncrFs; - gaussIncr.toFieldSet(gaussIncrFs); - - // Get the GC99 parameters from config - double amp = conf.getDouble("amplitude"); - double scale = conf.getDouble("length scale"); - const atlas::PointLonLat p0(conf.getDouble("lon"), conf.getDouble("lat")); - - // Recompute weights - for (auto & field : gaussIncrFs) { - oops::Log::info() << "---------- Field name: " << field.name() << std::endl; - auto view = atlas::array::make_view(field); - for (int jnode = 0; jnode < field.shape(0); ++jnode) { - atlas::PointLonLat p1(lons[jnode], lats[jnode]); - double d = atlas::util::Earth::distance(p0, p1)/1000.0; - for (int jlevel = 0; jlevel < field.shape(1); ++jlevel) { - view(jnode, jlevel) += amp * oops::gc99(d/scale); - } + // Get the 2D grid + auto lonlat = atlas::array::make_view(geom.functionSpace().lonlat()); + + // Prepare fieldset from increment + atlas::FieldSet gaussIncrFs; + gaussIncr.toFieldSet(gaussIncrFs); + + // Get the GC99 parameters from config + double amp = conf.getDouble("amplitude"); + double scale = conf.getDouble("length scale"); + const atlas::PointLonLat p0(conf.getDouble("lon"), conf.getDouble("lat")); + + // Recompute weights + for (auto & field : gaussIncrFs) { + oops::Log::info() << "---------- Field name: " << field.name() << std::endl; + auto view = atlas::array::make_view(field); + for (int jnode = 0; jnode < field.shape(0); ++jnode) { + atlas::PointLonLat p1(lonlat(jnode, 0), lonlat(jnode, 1)); + double d = atlas::util::Earth::distance(p0, p1)/1000.0; + for (int jlevel = 0; jlevel < field.shape(1); ++jlevel) { + view(jnode, jlevel) += amp * oops::gc99(d/scale); } } - gaussIncr.fromFieldSet(gaussIncrFs); + } + gaussIncr.fromFieldSet(gaussIncrFs); } class SocaHybridWeights : public oops::Application {