Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update gempak job to run one fcst hour per task #2671

Merged
merged 54 commits into from
Jul 3, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
5a52e57
Update gempak job to run one fcst hour per task
GwenChen-NOAA Jun 10, 2024
4ee9076
Syntax update
GwenChen-NOAA Jun 10, 2024
5876225
Update ecf script
GwenChen-NOAA Jun 10, 2024
b5dcca5
Merge branch 'develop' into develop
GwenChen-NOAA Jun 10, 2024
a6b2310
Disable shellcheck
GwenChen-NOAA Jun 10, 2024
2e6b0d1
Merge branch 'develop' of https://github.com/GwenChen-NOAA/global-wor…
GwenChen-NOAA Jun 10, 2024
f7cc5fb
Remove unused variable fend
GwenChen-NOAA Jun 10, 2024
1cab6d5
Upload GDAS and GOES job scripts
GwenChen-NOAA Jun 13, 2024
166a3aa
Merge branch 'develop' into develop
GwenChen-NOAA Jun 13, 2024
54e9cc1
Fix GOES master filename
GwenChen-NOAA Jun 20, 2024
73f23f2
Merge branch 'NOAA-EMC:develop' into develop
GwenChen-NOAA Jun 20, 2024
f9b148e
Merge branch 'develop' of https://github.com/GwenChen-NOAA/global-wor…
GwenChen-NOAA Jun 20, 2024
662b229
Make gempak a metatask
WalterKolczynski-NOAA Jun 20, 2024
9a5446f
Turn gempack special job into a metatask
WalterKolczynski-NOAA Jun 20, 2024
96850c6
Merge pull request #1 from WalterKolczynski-NOAA/feature/gempak_refactor
GwenChen-NOAA Jun 21, 2024
50d92c5
Merge branch 'NOAA-EMC:develop' into develop
GwenChen-NOAA Jun 26, 2024
a0fdfd9
Merge branch 'NOAA-EMC:develop' into develop
GwenChen-NOAA Jun 26, 2024
3b3387d
Update gfs_tasks.py
GwenChen-NOAA Jun 26, 2024
dbb96b0
Remove forecast hour loops
GwenChen-NOAA Jun 27, 2024
cc2e8aa
Remove 'continue' in rocoto scripts
GwenChen-NOAA Jun 27, 2024
22fbe5c
Requested changes by reviewer
GwenChen-NOAA Jun 27, 2024
47e11ba
One more fix
GwenChen-NOAA Jun 27, 2024
d1dc43b
Update jobs/rocoto/gempak.sh
GwenChen-NOAA Jun 28, 2024
2f28348
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
68c42be
Update jobs/rocoto/gempakgrb2spec.sh
GwenChen-NOAA Jun 28, 2024
b10150c
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
a4b2491
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
d6ecc5b
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
ce5bb0e
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
1695967
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
32c818c
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
aea19a4
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
b84de81
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
dbc5cc2
Update scripts/exgfs_atmos_goes_nawips.sh
GwenChen-NOAA Jun 28, 2024
8e3702c
Update scripts/exgfs_atmos_goes_nawips.sh
GwenChen-NOAA Jun 28, 2024
58ae146
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
55e2f70
Update jobs/JGFS_ATMOS_GEMPAK
GwenChen-NOAA Jun 28, 2024
7c1861b
Update scripts/exgdas_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
9dd6b6a
Update scripts/exgdas_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
219ffd4
Update scripts/exgfs_atmos_goes_nawips.sh
GwenChen-NOAA Jun 28, 2024
466c15e
Update scripts/exgfs_atmos_goes_nawips.sh
GwenChen-NOAA Jun 28, 2024
ad5fc69
Update scripts/exgfs_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
c35194c
Update scripts/exgfs_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
6227f76
Update scripts/exgfs_atmos_goes_nawips.sh
GwenChen-NOAA Jun 28, 2024
9e8675a
Merge branch 'NOAA-EMC:develop' into develop
GwenChen-NOAA Jun 28, 2024
c1effb1
Reduce wallclock for gempak in config.resources
GwenChen-NOAA Jun 28, 2024
9b33676
Update scripts/exgdas_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
307dcac
Update scripts/exgdas_atmos_nawips.sh
GwenChen-NOAA Jun 28, 2024
d15df32
Fix octal issue
GwenChen-NOAA Jul 1, 2024
ee15903
Merge branch 'develop' into develop
aerorahul Jul 1, 2024
fd68443
Fix CI test error
GwenChen-NOAA Jul 2, 2024
e271417
Merge branch 'develop' of https://github.com/GwenChen-NOAA/global-wor…
GwenChen-NOAA Jul 2, 2024
9d85f3d
Merge branch 'develop' into develop
aerorahul Jul 2, 2024
2aed07c
Merge branch 'develop' into develop
aerorahul Jul 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion ecf/scripts/gdas/atmos/gempak/jgdas_atmos_gempak.ecf
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#PBS -S /bin/bash
#PBS -N %RUN%_atmos_gempak_%CYC%
#PBS -N %RUN%_atmos_gempak_%FCSTHR%_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
Expand Down Expand Up @@ -31,9 +31,13 @@ module load gempak/${gempak_ver}

module list

#############################################################
# environment settings
#############################################################
export cyc=%CYC%
export cycle=t%CYC%z
export USE_CFP=YES
export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR%

############################################################
# CALL executable job script here
Expand Down
5 changes: 3 additions & 2 deletions ecf/scripts/gfs/atmos/gempak/jgfs_atmos_gempak.ecf
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#PBS -S /bin/bash
#PBS -N %RUN%_atmos_gempak_%CYC%
#PBS -N %RUN%_atmos_gempak_%FCSTHR%_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=03:00:00
#PBS -l walltime=00:30:00
#PBS -l select=1:ncpus=28:mpiprocs=28:mem=2GB
#PBS -l place=vscatter:shared
#PBS -l debug=true
Expand Down Expand Up @@ -37,6 +37,7 @@ module list
#############################################################
export cyc=%CYC%
export cycle=t%CYC%z
export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR%

############################################################
# CALL executable job script here
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
#PBS -S /bin/bash
#PBS -N %RUN%_atmos_pgrb2_spec_gempak_%CYC%
#PBS -N %RUN%_atmos_pgrb2_spec_gempak_%FCSTHR%_%CYC%
#PBS -j oe
#PBS -q %QUEUE%
#PBS -A %PROJ%-%PROJENVIR%
#PBS -l walltime=00:30:00
#PBS -l walltime=00:15:00
#PBS -l select=1:ncpus=1:mem=1GB
#PBS -l place=vscatter:shared
#PBS -l debug=true
Expand Down Expand Up @@ -35,6 +35,7 @@ module list
#############################################################
export cyc=%CYC%
export cycle=t%CYC%z
export FHRGRP=%FHRGRP% FHRLST=%FHRLST% FCSTHR=%FCSTHR% TRDRUN=%TRDRUN% fcsthrs=%FCSTHR%

############################################################
# CALL executable job script here
Expand Down
48 changes: 17 additions & 31 deletions jobs/JGDAS_ATMOS_GEMPAK
Original file line number Diff line number Diff line change
Expand Up @@ -3,27 +3,17 @@
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak"

# TODO (#1219) This j-job is not part of the rocoto suite

############################################
# Set up model and cycle specific variables
############################################

export fend=09
export finc=3
export fstart=00
export GRIB=pgrb2f
export model=${model:-gdas}
export GRIB=${GRIB:-pgrb2f}
export EXT=""
export DBN_ALERT_TYPE=GDAS_GEMPAK
export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GDAS_GEMPAK}

export SENDDBN=${SENDDBN:-NO}
export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn}

###################################
# Specify NET and RUN Name and model
####################################
export model=${model:-gdas}

##############################################
# Define COM directories
##############################################
Expand All @@ -40,26 +30,22 @@ for grid in 0p25 1p00; do
fi
done

# TODO: These actions belong in an ex-script not a j-job
if [[ -f poescript ]]; then
rm -f poescript
########################################################
# Execute the script for one degree grib
########################################################
fhmin=0
fhmax=9
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
"${SCRgfs}/exgdas_atmos_nawips.sh" "1p00" "${fcsthrs}" "GDAS_GEMPAK" "${COM_ATMOS_GEMPAK_1p00}"

########################################################
# Execute the script for quater-degree grib
########################################################
"${SCRgfs}/exgdas_atmos_nawips.sh" "0p25" "${fcsthrs}" "GDAS_GEMPAK" "${COM_ATMOS_GEMPAK_0p25}"
fi
fi
WalterKolczynski-NOAA marked this conversation as resolved.
Show resolved Hide resolved

{
########################################################
# Execute the script.
echo "${SCRgfs}/exgdas_atmos_nawips.sh 1p00 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
########################################################

########################################################
# Execute the script for quater-degree grib
echo "${SCRgfs}/exgdas_atmos_nawips.sh 0p25 009 GDAS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
########################################################
} > poescript

cat poescript

"${HOMEgfs}/ush/run_mpmd.sh" poescript
export err=$?; err_chk

############################################
Expand Down
181 changes: 109 additions & 72 deletions jobs/JGFS_ATMOS_GEMPAK
Original file line number Diff line number Diff line change
Expand Up @@ -6,27 +6,20 @@ source "${HOMEgfs}/ush/jjob_header.sh" -e "gempak" -c "base gempak"
############################################
# Set up model and cycle specific variables
############################################
export finc=${finc:-3}
export fstart=${fstart:-0}
export model=${model:-gfs}
export GRIB=${GRIB:-pgrb2f}
export EXT=""
export DBN_ALERT_TYPE=${DBN_ALERT_TYPE:-GFS_GEMPAK}

export SENDDBN=${SENDDBN:-NO}
export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn}

# For half-degree P Grib files
export DO_HD_PGRB=${DO_HD_PGRB:-YES}

###################################
# Specify NET and RUN Name and model
####################################
export model=${model:-gfs}

##############################################
# Define COM directories
##############################################
export SENDDBN=${SENDDBN:-NO}
export DBNROOT=${DBNROOT:-${UTILROOT}/fakedbn}

for grid in 0p25 0p50 1p00; do
GRID=${grid} YMD=${PDY} HH=${cyc} declare_from_tmpl -rx "COM_ATMOS_GRIB_${grid}:COM_ATMOS_GRIB_GRID_TMPL"
done
Expand All @@ -40,73 +33,117 @@ for grid in 1p00 0p50 0p25 40km 35km_atl 35km_pac; do
fi
done

# TODO: These actions belong in an ex-script not a j-job
if [[ -f poescript ]]; then
rm -f poescript
fi

ocean_domain_max=180
if (( ocean_domain_max > FHMAX_GFS )); then
ocean_domain_max=${FHMAX_GFS}
fi

{
#################################################################
# Execute the script for the 384 hour 1 degree grib
##################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 1p00 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_1p00}"

#################################################################
# Execute the script for the half-degree grib
##################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p50 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p50}"

#################################################################
# Execute the script for the quater-degree grib
####################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 0p25 ${FHMAX_GFS} GFS_GEMPAK ${COM_ATMOS_GEMPAK_0p25}"

####################################################################
# Execute the script to create the 35km Pacific grids for OPC
#####################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 35km_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 35km_pac ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_pac}"

####################################################################
# Execute the script to create the 35km Atlantic grids for OPC
#####################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 35km_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 35km_atl ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_35km_atl}"

#####################################################################
# Execute the script to create the 40km grids for HPC
######################################################################
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 40km ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km}"
echo "time ${SCRgfs}/exgfs_atmos_nawips.sh 40km ${ocean_domain_max} GFS_GEMPAK_WWB ${COM_ATMOS_GEMPAK_40km}"
} > poescript

cat poescript

"${HOMEgfs}/ush/run_mpmd.sh" poescript
#################################################################
# Execute the script for the 384 hour 1 degree grib
##################################################################
fhmin=0
fhmax=240
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
WalterKolczynski-NOAA marked this conversation as resolved.
Show resolved Hide resolved
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "1p00" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_1p00}"
fi
fi

fhmin=252
fhmax=384
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 12 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "1p00" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_1p00}"
fi
fi

#################################################################
# Execute the script for the half-degree grib
##################################################################
fhmin=0
fhmax=240
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p50}"
fi
fi

fhmin=246
fhmax=276
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 6 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p50}"
fi
fi

fhmin=288
fhmax=384
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 12 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p50" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p50}"
fi
fi

#################################################################
# Execute the script for the quater-degree grib
####################################################################
fhmin=0
fhmax=120
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 1 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p25}"
fi
fi

fhmin=123
fhmax=240
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p25}"
fi
fi

fhmin=252
fhmax=384
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 12 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "0p25" "${fcsthrs}" "GFS_GEMPAK" "${COM_ATMOS_GEMPAK_0p25}"
fi
fi

####################################################################
# Execute the script to create the 35km Pacific grids for OPC
#####################################################################
fhmin=0
fhmax="${ocean_domain_max}"
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "35km_pac" "${fcsthrs}" "GFS_GEMPAK_WWB" "${COM_ATMOS_GEMPAK_35km_pac}"
fi
fi

####################################################################
# Execute the script to create the 35km Atlantic grids for OPC
#####################################################################
fhmin=0
fhmax="${ocean_domain_max}"
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "35km_atl" "${fcsthrs}" "GFS_GEMPAK_WWB" "${COM_ATMOS_GEMPAK_35km_atl}"
fi
fi

#####################################################################
# Execute the script to create the 40km grids for HPC
######################################################################
fhmin=0
fhmax="${ocean_domain_max}"
if (( fcsthrs >= fhmin && fcsthrs <= fhmax )); then
if ((fcsthrs % 3 == 0)); then
time "${SCRgfs}/exgfs_atmos_nawips.sh" "40km" "${fcsthrs}" "GFS_GEMPAK_WWB" "${COM_ATMOS_GEMPAK_40km}"
fi
fi

export err=$?; err_chk

############################################
Expand Down
Loading
Loading