From b1ac9a2805ec0027f85f6184ae907b378b75876c Mon Sep 17 00:00:00 2001 From: Matthew Thompson Date: Wed, 10 Apr 2024 12:35:16 -0400 Subject: [PATCH 1/5] Fix up merge with repo split --- GEOSldas_App/GEOSldas_HIST.rc | 14 ++++-- GEOSldas_App/ldas_setup | 56 ++++++++++++++++++++++- GEOSldas_App/lenkf.j.template | 9 +++- GEOSldas_App/preprocess_ldas.F90 | 28 ++++++++---- GEOSldas_App/preprocess_ldas_routines.F90 | 8 ++++ GEOSldas_App/tile_bin2nc4.F90 | 8 ++++ 6 files changed, 108 insertions(+), 15 deletions(-) diff --git a/GEOSldas_App/GEOSldas_HIST.rc b/GEOSldas_App/GEOSldas_HIST.rc index adb52654..f1b483d4 100644 --- a/GEOSldas_App/GEOSldas_HIST.rc +++ b/GEOSldas_App/GEOSldas_HIST.rc @@ -132,7 +132,8 @@ COLLECTIONS: 'TP5' , 'GridComp' , 'TP6' , 'GridComp' , 'PRLAND' , 'GridComp' , 'PRECTOTLAND' , - 'SNOLAND' , 'GridComp' , 'PRECSNOLAND' , +>>>HIST_IRRIG<<< 'IRRLAND' , 'GridComp' , + 'SNOLAND' , 'GridComp' , 'PRECSNOLAND' , 'TSLAND' , 'GridComp' , 'SNOMAS' , 'SNOWDP' , 'GridComp' , 'SNODP' , 'EVPSOI' , 'GridComp' , 'EVPSOIL' , @@ -200,7 +201,9 @@ COLLECTIONS: >>>HIST_CATCHCN<<< 'WAT10CM' , 'GridComp' , >>>HIST_CATCHCN<<< 'WATSOI' , 'GridComp' , >>>HIST_CATCHCN<<< 'ICESOI' , 'GridComp' , ->>>HIST_IRRIG<<< 'IRRIGRATE' , 'GridComp' , +>>>HIST_IRRIG<<< 'SPRINKLERRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'FLOODRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'DRIPRATE' , 'IRRIGATION' , :: tavg24_2d_lnd_Nx.descr: '2d,Daily,Time-Averaged,Single-Level,Assimilation,Land Surface Diagnostics', @@ -234,7 +237,8 @@ COLLECTIONS: 'TP5' , 'GridComp' , 'TP6' , 'GridComp' , 'PRLAND' , 'GridComp' , 'PRECTOTLAND' , - 'SNOLAND' , 'GridComp' , 'PRECSNOLAND' , +>>>HIST_IRRIG<<< 'IRRLAND' , 'GridComp' , + 'SNOLAND' , 'GridComp' , 'PRECSNOLAND' , 'TSLAND' , 'GridComp' , 'SNOMAS' , 'SNOWDP' , 'GridComp' , 'SNODP' , 'EVPSOI' , 'GridComp' , 'EVPSOIL' , @@ -302,7 +306,9 @@ COLLECTIONS: >>>HIST_CATCHCN<<< 'WAT10CM' , 'GridComp' , >>>HIST_CATCHCN<<< 'WATSOI' , 'GridComp' , >>>HIST_CATCHCN<<< 'ICESOI' , 'GridComp' , ->>>HIST_IRRIG<<< 'IRRIGRATE' , 'GridComp' , +>>>HIST_IRRIG<<< 'SPRINKLERRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'FLOODRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'DRIPRATE' , 'IRRIGATION' , :: SMAP_L4_SM_gph.descr: 'Tile-space,3-Hourly,Time-Averaged,Single-Level,Assimilation,SMAP L4_SM Land Geophysical Diagnostics', diff --git a/GEOSldas_App/ldas_setup b/GEOSldas_App/ldas_setup index 6cf1c5ae..335a9784 100755 --- a/GEOSldas_App/ldas_setup +++ b/GEOSldas_App/ldas_setup @@ -406,7 +406,15 @@ class LDASsetup: vegdynRstFile=tmpRstDir+'/'+tmpFile if not os.path.isfile(vegdynRstFile): assert int(self.rqdExeInp['RST_FROM_GLOBAL']) == 1, 'restart from LDASsa should be global' + + tmpFile=self.rqdExeInp['RESTART_ID']+'.irrigation_internal_rst' + tmpRstDir=self.rqdExeInp['RESTART_PATH']+'/'.join([self.rqdExeInp['RESTART_ID'],'output', + self.rqdExeInp['RESTART_DOMAIN'],'rs',self.ensdirs[0]]) + irrigationRstFile=tmpRstDir+'/'+tmpFile + if not os.path.isfile(irrigationRstFile): + assert int(self.rqdExeInp['RST_FROM_GLOBAL']) == 1, 'restart from LDASsa should be global' + tmpFile=self.rqdExeInp['RESTART_ID']+'.landpert_internal_rst.'+y4m2d2_h2m2 tmpRstDir=self.rqdExeInp['RESTART_PATH']+'/'.join([self.rqdExeInp['RESTART_ID'],'output', self.rqdExeInp['RESTART_DOMAIN'],'rs',self.ensdirs[0],y4m2]) @@ -893,17 +901,21 @@ class LDASsetup: ensid = self.ensids[iens] myCatchRst = myRstDir+'/'+self.catch +ensid +'_internal_rst' myVegRst = myRstDir+'/'+'vegdyn'+ensid +'_internal_rst' + myIrrRst = myRstDir+'/'+'irrigation'+ensid +'_internal_rst' myPertRst = myRstDir+'/'+ 'landpert' +ensid +'_internal_rst' catchRstFile = '' vegdynRstFile = '' + irrigationRstFile = '' pertRstFile = '' print ("restart: " + self.rqdExeInp['RESTART']) - + self.present_irrfile = glob.glob(self.rqdExeInp['BCS_PATH']+'irrigation_*.dat') if self.rqdExeInp['RESTART'].isdigit() : if int(self.rqdExeInp['RESTART']) == 0 or int(self.rqdExeInp['RESTART']) == 2 : vegdynRstFile = glob.glob(self.bcs_land + 'vegdyn_*.dat')[0] + if len(self.present_irrfile) > 0: + irrigationRstFile = glob.glob(self.bcs_land+'irrigation_*.dat')[0] catchRstFile = glob.glob(self.exphome+'/'+exp_id+'/mk_restarts/*'+self.catch+'_internal_rst.'+YYYYMMDD+'*')[0] else : # RESTART == 1 catchRstFile = rstpath+ensdir +'/'+ y4m2+'/'+self.rqdExeInp['RESTART_ID']+'.'+self.catch+'_internal_rst.'+y4m2d2_h2m2 @@ -911,7 +923,13 @@ class LDASsetup: if not os.path.isfile(vegdynRstFile): # no vegdyn restart from LDASsa if not os.path.isfile(vegdynRstFile0): vegdynRstFile = glob.glob(self.bcs_land + 'vegdyn_*.dat')[0] + irrigationRstFile= rstpath+ensdir +'/'+ y4m2+'/'+self.rqdExeInp['RESTART_ID']+'.irrigation_internal_rst.'+y4m2d2_h2m2 + if not os.path.isfile(irrigationRstFile): # no irrigation restart from LDASsa + if len(self.present_irrfile) > 0: + irrigationRstFile = glob.glob(self.bcs_land+'irrigation_*.dat')[0] else : + if len(self.present_irrfile) > 0: + irrigationRstFile = glob.glob(self.bcs_land+'irrigation_*.dat')[0] vegdynRstFile = glob.glob(self.bcs_land + 'vegdyn_*.dat')[0] catchRstFile = glob.glob(self.exphome+'/'+exp_id+'/mk_restarts/*'+self.catch+'_internal_rst.'+YYYYMMDD+'*')[0] @@ -950,6 +968,23 @@ class LDASsetup: vegdynRstFile0 = vegdynRstFile else : vegdynRstFile = vegdynRstFile0 + # irrigation restart file + if os.path.isfile(irrigationRstFile) : + irrigationLocal = self.rstdir+ensdir +'/'+ y4m2 +'/'+self.rqdExeInp['EXP_ID']+'.irrigation_internal_rst.'+y4m2d2_h2m2 + if self.islocal : + print ("Creating the local irrigation restart file... \n") + cmd='./preprocess_ldas.x c_localirrrst '+ irrigationRstFile +' ' + irrigationLocal + print ("cmd: " + cmd) + sp.call(shlex.split(cmd)) + else : + shutil.copy(irrigationRstFile,irrigationLocal) + + irrigationRstFile = irrigationLocal + + if '0000' in ensdir : + irrigationRstFile0 = irrigationRstFile + else : + irrigationRstFile = irrigationRstFile0 if (self.has_geos_pert and self.perturb == 1) : pertRstFile = rstpath+ensdir +'/'+ y4m2+'/'+self.rqdExeInp['RESTART_ID']+'.landpert_internal_rst.'+y4m2d2_h2m2 @@ -961,6 +996,8 @@ class LDASsetup: print ('vegdynRstFile: ' + vegdynRstFile) os.symlink(catchRstFile, myCatchRst) os.symlink(vegdynRstFile, myVegRst) + if os.path.isfile(irrigationRstFile): + os.symlink(irrigationRstFile, myIrrRst) if ( self.has_geos_pert and self.perturb == 1 ): os.symlink(pertRstFile, myPertRst) @@ -1159,6 +1196,11 @@ class LDASsetup: if 'VEGDYN_INTERNAL_RESTART_TYPE' in ldasrcInp : # avoid duplicate del ldasrcInp['VEGDYN_INTERNAL_RESTART_TYPE'] + if 'IRRIGATION_INTERNAL_RESTART_TYPE' in ldasrcInp : + # avoid duplicate + del ldasrcInp['IRRIGATION_INTERNAL_RESTART_TYPE'] + + rstkey=[catch_,'VEGDYN'] rstval=[self.catch,'vegdyn'] @@ -1186,12 +1228,24 @@ class LDASsetup: keyn='LANDASSIM_OBSPERTRSEED_CHECKPOINT_FILE' valn='landassim_obspertrseed'+tmpl_+'_checkpoint' ldasrcInp[keyn]= valn + + for key,val in zip(rstkey,rstval) : + keyn = key+ '_INTERNAL_RESTART_FILE' + valn = '../input/restart/'+val+tmpl_+'_internal_rst' + ldasrcInp[keyn]= valn + rstkey=[catch_,'IRRIGATION'] + rstval=[self.catch,'irrigation'] + for key,val in zip(rstkey,rstval) : keyn = key+ '_INTERNAL_RESTART_FILE' valn = '../input/restart/'+val+tmpl_+'_internal_rst' ldasrcInp[keyn]= valn + keyn = key+ '_INTERNAL_CHECKPOINT_FILE' + valn = val+'_internal_checkpoint' + ldasrcInp[keyn]= valn + # checkpoint file and its type keyn = catch_ + '_INTERNAL_CHECKPOINT_FILE' valn = self.catch+tmpl_+'_internal_checkpoint' diff --git a/GEOSldas_App/lenkf.j.template b/GEOSldas_App/lenkf.j.template index 7324b768..d1198893 100644 --- a/GEOSldas_App/lenkf.j.template +++ b/GEOSldas_App/lenkf.j.template @@ -709,7 +709,14 @@ EOF /bin/rm -f $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst /bin/ln -rs $tmp_file $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst endif - + set rstf = 'irrigation' + echo ${rstf}${ENSID}_internal_checkpoint + if (-f ${rstf}${ENSID}_internal_checkpoint ) then + set tmp_file = $EXPDIR/output/$EXPDOMAIN/rs/$ENSDIR/Y${eYEAR}/M${eMON}/${EXPID}.${rstf}_internal_rst.${eYEAR}${eMON}${eDAY}_${eHour}${eMin} + /bin/mv ${rstf}${ENSID}_internal_checkpoint $tmp_file + /bin/rm -f $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst + /bin/ln -s $tmp_file $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst + endif set rstf = 'landpert' if (-f ${rstf}${ENSID}_internal_checkpoint ) then set tmp_file = $EXPDIR/output/$EXPDOMAIN/rs/$ENSDIR/Y${eYEAR}/M${eMON}/${EXPID}.${rstf}_internal_rst.${eYEAR}${eMON}${eDAY}_${eHour}${eMin} diff --git a/GEOSldas_App/preprocess_ldas.F90 b/GEOSldas_App/preprocess_ldas.F90 index 4d5725e6..eeded80d 100644 --- a/GEOSldas_App/preprocess_ldas.F90 +++ b/GEOSldas_App/preprocess_ldas.F90 @@ -4,15 +4,16 @@ program main - use preprocess_ldas_routines, ONLY: & - createf2g, & - createLocalTilefile, & - createLocalBC, & - createLocalVegRestart, & - createLocalmwRTMRestart, & - createLocalCatchRestart, & - correctEase, & - convert_pert_rst, & + use preprocess_ldas_routines, ONLY: & + createf2g, & + createLocalTilefile, & + createLocalBC, & + createLocalVegRestart, & + createLocalmwRTMRestart, & + createLocalCatchRestart, & + write3D_nc => createLocalCatchRestart, & + correctEase, & + convert_pert_rst, & optimize_latlon implicit none @@ -41,6 +42,8 @@ program main character(len=512) :: new_BC character(len=512) :: orig_Veg character(len=512) :: new_veg + character(len=512) :: orig_irr + character(len=512) :: new_irr character(len=512) :: orig_ease character(len=512) :: new_ease character(len=512) :: f2g_file @@ -95,6 +98,13 @@ program main f2g_file = arg3 call createLocalVegRestart(f2g_file, orig_veg, new_veg) + + else if (trim(option) == "c_localirrrst") then + + orig_irr = arg1 + new_irr = arg2 + + call write3D_nc (f2g_file, orig_irr, new_irr) else if (trim(option) == "c_localmwrtmrst") then diff --git a/GEOSldas_App/preprocess_ldas_routines.F90 b/GEOSldas_App/preprocess_ldas_routines.F90 index 4a7e9ec1..0563d044 100644 --- a/GEOSldas_App/preprocess_ldas_routines.F90 +++ b/GEOSldas_App/preprocess_ldas_routines.F90 @@ -1793,9 +1793,17 @@ subroutine createLocalCatchRestart(f2g_file, orig_catch, new_catch) call var_iter%next() cycle endif + + if (trim(vname) =='CROPCLASSNAME') then + call var_iter%next() + cycle + endif if (ndims == 1) then call MAPL_VarRead (InFmt,vname,tmp1) + if ((trim(vname) =='SPRINKLERRATE') .or. & + (trim(vname) =='DRIPRATE') .or. & + (trim(vname) =='FLOODRATE')) tmp1 = 0. call MAPL_VarWrite(OutFmt,vname,tmp1(f2g)) else if (ndims == 2) then diff --git a/GEOSldas_App/tile_bin2nc4.F90 b/GEOSldas_App/tile_bin2nc4.F90 index df52c8be..199bf6e4 100644 --- a/GEOSldas_App/tile_bin2nc4.F90 +++ b/GEOSldas_App/tile_bin2nc4.F90 @@ -436,6 +436,14 @@ FUNCTION getAttribute (SHORT_NAME, LNAME, UNT) result (str_atr) case ('TSURF_ANA_ENSSTD'); LONG_NAME = 'ave_catchment_temp_incl_snw_analysis_ensstd'; UNITS = 'K' case ('TSOIL1_ANA_ENSSTD'); LONG_NAME = 'soil_temperatures_layer_1_analysis_ensstd'; UNITS = 'K' + ! new fields for the irrigation model + + case ('SPRINKLERRATE'); LONG_NAME = 'sprinkler_irrigation_rate'; UNITS = 'kg m-2 s-1' + case ('DRIPRATE'); LONG_NAME = 'drip_irrigation_rate'; UNITS = 'kg m-2 s-1' + case ('FLOODRATE'); LONG_NAME = 'flood_irrigation_rate'; UNITS = 'kg m-2 s-1' + case ('IRRLAND'); LONG_NAME = 'Total_irrigation_land'; UNITS = 'kg m-2 s-1' + + ! other land assimilation fields case ('MWRTM_VEGOPACITY'); LONG_NAME = 'Lband_microwave_vegopacity_normalized_with_cos_inc_angle'; UNITS = '1' From 276a5fe4b8ccbbc3a75ed9762177c5beee6e8521 Mon Sep 17 00:00:00 2001 From: stefanocasirati Date: Mon, 15 Apr 2024 14:15:37 -0700 Subject: [PATCH 2/5] Fixes --- GEOSldas_App/ldas_setup | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/GEOSldas_App/ldas_setup b/GEOSldas_App/ldas_setup index 335a9784..8aa1e3a1 100755 --- a/GEOSldas_App/ldas_setup +++ b/GEOSldas_App/ldas_setup @@ -896,6 +896,7 @@ class LDASsetup: #for ens in self.ensdirs : catchRstFile0 = '' vegdynRstFile0 = '' + irrigationRstFile0 = '' for iens in range(self.nens) : ensdir = self.ensdirs[iens] ensid = self.ensids[iens] @@ -909,7 +910,7 @@ class LDASsetup: irrigationRstFile = '' pertRstFile = '' print ("restart: " + self.rqdExeInp['RESTART']) - self.present_irrfile = glob.glob(self.rqdExeInp['BCS_PATH']+'irrigation_*.dat') + self.present_irrfile = glob.glob(self.bcs_land+'irrigation_*.dat') if self.rqdExeInp['RESTART'].isdigit() : if int(self.rqdExeInp['RESTART']) == 0 or int(self.rqdExeInp['RESTART']) == 2 : @@ -968,21 +969,21 @@ class LDASsetup: vegdynRstFile0 = vegdynRstFile else : vegdynRstFile = vegdynRstFile0 - # irrigation restart file - if os.path.isfile(irrigationRstFile) : - irrigationLocal = self.rstdir+ensdir +'/'+ y4m2 +'/'+self.rqdExeInp['EXP_ID']+'.irrigation_internal_rst.'+y4m2d2_h2m2 - if self.islocal : - print ("Creating the local irrigation restart file... \n") - cmd='./preprocess_ldas.x c_localirrrst '+ irrigationRstFile +' ' + irrigationLocal - print ("cmd: " + cmd) - sp.call(shlex.split(cmd)) - else : - shutil.copy(irrigationRstFile,irrigationLocal) + # irrigation restart file + if os.path.isfile(irrigationRstFile) : + irrigationLocal = self.rstdir+ensdir +'/'+ y4m2 +'/'+self.rqdExeInp['EXP_ID']+'.irrigation_internal_rst.'+y4m2d2_h2m2 + if self.islocal : + print ("Creating the local irrigation restart file... \n") + cmd='./preprocess_ldas.x c_localirrrst '+ irrigationRstFile +' ' + irrigationLocal + print ("cmd: " + cmd) + sp.call(shlex.split(cmd)) + else : + shutil.copy(irrigationRstFile,irrigationLocal) - irrigationRstFile = irrigationLocal + irrigationRstFile = irrigationLocal - if '0000' in ensdir : - irrigationRstFile0 = irrigationRstFile + if '0000' in ensdir : + irrigationRstFile0 = irrigationRstFile else : irrigationRstFile = irrigationRstFile0 @@ -997,7 +998,7 @@ class LDASsetup: os.symlink(catchRstFile, myCatchRst) os.symlink(vegdynRstFile, myVegRst) if os.path.isfile(irrigationRstFile): - os.symlink(irrigationRstFile, myIrrRst) + os.symlink(irrigationRstFile, myIrrRst) if ( self.has_geos_pert and self.perturb == 1 ): os.symlink(pertRstFile, myPertRst) From 43cc3d02463a9621f144f024bc58866080106a12 Mon Sep 17 00:00:00 2001 From: stefanocasirati Date: Tue, 16 Apr 2024 15:01:28 -0700 Subject: [PATCH 3/5] fixed irrigation in lenkf_j_template.py --- GEOSldas_App/lenkf_j_template.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/GEOSldas_App/lenkf_j_template.py b/GEOSldas_App/lenkf_j_template.py index 129b830c..1bb10480 100644 --- a/GEOSldas_App/lenkf_j_template.py +++ b/GEOSldas_App/lenkf_j_template.py @@ -724,12 +724,12 @@ /bin/ln -rs $tmp_file $EXPDIR/input/restart/${{rstf}}${{ENSID}}_internal_rst endif set rstf = 'irrigation' - echo ${rstf}${ENSID}_internal_checkpoint - if (-f ${rstf}${ENSID}_internal_checkpoint ) then - set tmp_file = $EXPDIR/output/$EXPDOMAIN/rs/$ENSDIR/Y${eYEAR}/M${eMON}/${EXPID}.${rstf}_internal_rst.${eYEAR}${eMON}${eDAY}_${eHour}${eMin} - /bin/mv ${rstf}${ENSID}_internal_checkpoint $tmp_file - /bin/rm -f $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst - /bin/ln -s $tmp_file $EXPDIR/input/restart/${rstf}${ENSID}_internal_rst + echo ${{rstf}}${{ENSID}}_internal_checkpoint + if (-f ${{rstf}}${{ENSID}}_internal_checkpoint ) then + set tmp_file = $EXPDIR/output/$EXPDOMAIN/rs/$ENSDIR/Y${{eYEAR}}/M${{eMON}}/${{EXPID}}.${{rstf}}_internal_rst.${{eYEAR}}${{eMON}}${{eDAY}}_${{eHour}}${{eMin}} + /bin/mv ${{rstf}}${{ENSID}}_internal_checkpoint $tmp_file + /bin/rm -f $EXPDIR/input/restart/${{rstf}}${{ENSID}}_internal_rst + /bin/ln -s $tmp_file $EXPDIR/input/restart/${{rstf}}${{ENSID}}_internal_rst endif set rstf = 'landpert' if (-f ${{rstf}}${{ENSID}}_internal_checkpoint ) then @@ -757,7 +757,9 @@ set rstfiles1 = `ls ${{MODEL}}${{ENSID}}_internal_checkpoint.*` set rstfiles2 = `ls landpert${{ENSID}}_internal_checkpoint.*` set rstfiles3 = `ls landassim_obspertrseed${{ENSID}}_checkpoint.*` + set rstfiles4 = `ls irrigation${{ENSID}}_internal_checkpoint.*` + foreach rfile ( $rstfiles1 ) set ThisTime = `echo $rfile | rev | cut -d'.' -f2 | rev` set TY = `echo $ThisTime | cut -c1-4` @@ -787,6 +789,16 @@ if (! -e $THISDIR ) mkdir -p $THISDIR /bin/mv $rfile ${{THISDIR}}${{EXPID}}.landassim_obspertrseed_rst.${{ThisTime}}.nc4 end + + foreach rfile ( $rstfiles4 ) + set ThisTime = `echo $rfile | rev | cut -d'.' -f2 | rev` + set TY = `echo $ThisTime | cut -c1-4` + set TM = `echo $ThisTime | cut -c5-6` + set THISDIR = $EXPDIR/output/$EXPDOMAIN/rs/$ENSDIR/Y${{TY}}/M${{TM}}/ + if (! -e $THISDIR ) mkdir -p $THISDIR + /bin/mv $rfile ${{THISDIR}}${{EXPID}}.irrigation_internal_rst.${{ThisTime}}.nc4 + /usr/bin/gzip ${{THISDIR}}${{EXPID}}.irrigation_internal_rst.${{ThisTime}}.nc4 & + end @ inens ++ end ## end of while ($inens < $NENS) From c73c942e54f1b16dc8dbc0c93619c3f2584ce85c Mon Sep 17 00:00:00 2001 From: stefanocasirati Date: Thu, 29 Aug 2024 15:55:35 -0700 Subject: [PATCH 4/5] Flood irrigation separated into Furrow and Flood irrigation --- GEOSldas_App/GEOSldas_HIST.rc | 2 ++ GEOSldas_App/preprocess_ldas_routines.F90 | 1 + GEOSldas_App/tile_bin2nc4.F90 | 1 + 3 files changed, 4 insertions(+) diff --git a/GEOSldas_App/GEOSldas_HIST.rc b/GEOSldas_App/GEOSldas_HIST.rc index f1b483d4..85e2f48d 100644 --- a/GEOSldas_App/GEOSldas_HIST.rc +++ b/GEOSldas_App/GEOSldas_HIST.rc @@ -202,6 +202,7 @@ COLLECTIONS: >>>HIST_CATCHCN<<< 'WATSOI' , 'GridComp' , >>>HIST_CATCHCN<<< 'ICESOI' , 'GridComp' , >>>HIST_IRRIG<<< 'SPRINKLERRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'FURROWRATE' , 'IRRIGATION' , >>>HIST_IRRIG<<< 'FLOODRATE' , 'IRRIGATION' , >>>HIST_IRRIG<<< 'DRIPRATE' , 'IRRIGATION' , :: @@ -307,6 +308,7 @@ COLLECTIONS: >>>HIST_CATCHCN<<< 'WATSOI' , 'GridComp' , >>>HIST_CATCHCN<<< 'ICESOI' , 'GridComp' , >>>HIST_IRRIG<<< 'SPRINKLERRATE' , 'IRRIGATION' , +>>>HIST_IRRIG<<< 'FURROWRATE' , 'IRRIGATION' , >>>HIST_IRRIG<<< 'FLOODRATE' , 'IRRIGATION' , >>>HIST_IRRIG<<< 'DRIPRATE' , 'IRRIGATION' , :: diff --git a/GEOSldas_App/preprocess_ldas_routines.F90 b/GEOSldas_App/preprocess_ldas_routines.F90 index f5dc05c3..127bb2e5 100644 --- a/GEOSldas_App/preprocess_ldas_routines.F90 +++ b/GEOSldas_App/preprocess_ldas_routines.F90 @@ -1803,6 +1803,7 @@ subroutine createLocalCatchRestart(f2g_file, orig_catch, new_catch) call MAPL_VarRead (InFmt,vname,tmp1) if ((trim(vname) =='SPRINKLERRATE') .or. & (trim(vname) =='DRIPRATE') .or. & + (trim(vname) =='FURROWRATE') .or. & (trim(vname) =='FLOODRATE')) tmp1 = 0. call MAPL_VarWrite(OutFmt,vname,tmp1(f2g)) else if (ndims == 2) then diff --git a/GEOSldas_App/tile_bin2nc4.F90 b/GEOSldas_App/tile_bin2nc4.F90 index 199bf6e4..5136a1fe 100644 --- a/GEOSldas_App/tile_bin2nc4.F90 +++ b/GEOSldas_App/tile_bin2nc4.F90 @@ -440,6 +440,7 @@ FUNCTION getAttribute (SHORT_NAME, LNAME, UNT) result (str_atr) case ('SPRINKLERRATE'); LONG_NAME = 'sprinkler_irrigation_rate'; UNITS = 'kg m-2 s-1' case ('DRIPRATE'); LONG_NAME = 'drip_irrigation_rate'; UNITS = 'kg m-2 s-1' + case ('FURROWRATE'); LONG_NAME = 'furrow_irrigation_rate'; UNITS = 'kg m-2 s-1' case ('FLOODRATE'); LONG_NAME = 'flood_irrigation_rate'; UNITS = 'kg m-2 s-1' case ('IRRLAND'); LONG_NAME = 'Total_irrigation_land'; UNITS = 'kg m-2 s-1' From ffc583585737c60bea974606a9e645333f6e9484 Mon Sep 17 00:00:00 2001 From: stefanocasirati Date: Wed, 18 Sep 2024 14:04:11 -0700 Subject: [PATCH 5/5] Fixed Irrigation_bcs slicing --- GEOSldas_App/ldas_setup | 3 ++- GEOSldas_App/preprocess_ldas.F90 | 2 ++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/GEOSldas_App/ldas_setup b/GEOSldas_App/ldas_setup index 4657a0a1..4d492704 100755 --- a/GEOSldas_App/ldas_setup +++ b/GEOSldas_App/ldas_setup @@ -994,7 +994,8 @@ class LDASsetup: irrigationLocal = self.rstdir+ensdir +'/'+ y4m2 +'/'+self.rqdExeInp['EXP_ID']+'.irrigation_internal_rst.'+y4m2d2_h2m2 if self.islocal : print ("Creating the local irrigation restart file... \n") - cmd='./preprocess_ldas.x c_localirrrst '+ irrigationRstFile +' ' + irrigationLocal + cmd='./preprocess_ldas.x c_localirrrst '+ irrigationRstFile +' ' + irrigationLocal + ' '+ tmp_f2g_file.name + print ("cmd: " + cmd) sp.call(shlex.split(cmd)) else : diff --git a/GEOSldas_App/preprocess_ldas.F90 b/GEOSldas_App/preprocess_ldas.F90 index eeded80d..f122801d 100644 --- a/GEOSldas_App/preprocess_ldas.F90 +++ b/GEOSldas_App/preprocess_ldas.F90 @@ -103,6 +103,8 @@ program main orig_irr = arg1 new_irr = arg2 + f2g_file = arg3 + call write3D_nc (f2g_file, orig_irr, new_irr)