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

Create separate GSI monitor jobs and remove from vrfy job #1983

Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
f277b1a
Update GSI monitor JJOB jjob_header inputs
KateFriedman-NOAA Oct 18, 2023
8b13eb1
Remove GSI monitor tasks from vrfy job
KateFriedman-NOAA Oct 18, 2023
6596ec5
Add new GSI monitor DO_* variables to config.base
KateFriedman-NOAA Oct 18, 2023
4871baf
Add the new GSI monitor jobs to config.resources
KateFriedman-NOAA Oct 18, 2023
7dc2753
Add new GSI monitor job switches to setup
KateFriedman-NOAA Oct 18, 2023
0f984dd
Add new GSI monitor jobs to task creation
KateFriedman-NOAA Oct 18, 2023
7bf3d2f
Add new GSI monitor tasks to tasks list
KateFriedman-NOAA Oct 18, 2023
566b59b
Add new GSI monitor jobs to GFS cycled setup
KateFriedman-NOAA Oct 18, 2023
5ef2d15
Create new rocoto job scripts for GSI monitor jobs
KateFriedman-NOAA Oct 18, 2023
76cf81c
Create new GSI monitor job configs
KateFriedman-NOAA Oct 18, 2023
d0ec662
Add GSI monitor job output folders to config.com
KateFriedman-NOAA Oct 19, 2023
9f04da8
Sync merge with develop
KateFriedman-NOAA Oct 25, 2023
865d14d
Move DO_VMINMON up for order consistency
KateFriedman-NOAA Oct 25, 2023
251db7f
Replace M_TANKverfM0 with M_TANKverf
KateFriedman-NOAA Oct 25, 2023
a642e78
Change location of GSI monitor outputs into COM
KateFriedman-NOAA Oct 25, 2023
b9cbc13
Add GSI monitor output to archival
KateFriedman-NOAA Oct 25, 2023
446494f
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Oct 26, 2023
9ac0059
Adjust GSI monitor job order for consistency
KateFriedman-NOAA Oct 26, 2023
89f151f
One more change for order consistency
KateFriedman-NOAA Oct 26, 2023
b9f0f36
Resolve shellcheck SC2086 warning
KateFriedman-NOAA Oct 26, 2023
6c621a1
Cleanup DATA and add missing exit
KateFriedman-NOAA Oct 26, 2023
f3983a1
Add missing exit at end of JGDAS_ATMOS_VERFRAD
KateFriedman-NOAA Oct 26, 2023
299b0ea
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Oct 26, 2023
98c1231
Fix COM_ATMOS_RADMON_PREVS in JGDAS_ATMOS_VERFRAD
KateFriedman-NOAA Oct 27, 2023
ff8af5e
Remove duplicate line in gfs_cycled.py
KateFriedman-NOAA Oct 27, 2023
557fa8f
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Oct 27, 2023
94a8e4b
Sync merge with develop
KateFriedman-NOAA Oct 31, 2023
a44d9a5
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Oct 31, 2023
fed7bb6
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Oct 31, 2023
b7b2638
Add GSI monitor jobs to archival job dependencies
KateFriedman-NOAA Oct 31, 2023
202a260
Merge branch 'NOAA-EMC:develop' into feature/monitor_jobs_separate
KateFriedman-NOAA Nov 1, 2023
c7d24c9
Sync merge with develop
KateFriedman-NOAA Nov 1, 2023
3ad6005
Update archive job dependencies for GSI monitor jobs
KateFriedman-NOAA Nov 2, 2023
1fccd1c
Resolve PEP8 error in gfs_tasks.py
KateFriedman-NOAA Nov 2, 2023
e3cfdac
Further resolve PEP8 errors
KateFriedman-NOAA Nov 2, 2023
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
19 changes: 6 additions & 13 deletions jobs/JGDAS_ATMOS_VERFOZN
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Set up environment for GDAS Ozone Monitor job
#############################################################
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy"
source "${HOMEgfs}/ush/jjob_header.sh" -e "verfozn" -c "base verfozn"

export OZNMON_SUFFIX=${OZNMON_SUFFIX:-${NET}}

Expand Down Expand Up @@ -42,15 +42,12 @@ export p_cyc=${pdate:8:2}
#---------------------------------------------
# OZN_TANKDIR - WHERE OUTPUT DATA WILL RESIDE
#
export OZN_TANKDIR=${OZN_TANKDIR:-$(compath.py ${envir}/${NET}/${gfs_ver})}
export TANKverf_ozn=${TANKverf_ozn:-${OZN_TANKDIR}/${RUN}.${PDY}/${cyc}/atmos/oznmon}
export TANKverf_oznM1=${TANKverf_oznM1:-${OZN_TANKDIR}/${RUN}.${P_PDY}/${p_cyc}/atmos/oznmon}

YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_OZNMON

if [[ ! -d ${TANKverf_ozn} ]]; then
mkdir -p -m 775 ${TANKverf_ozn}
fi
export TANKverf_ozn=${TANKverf_ozn:-${COM_ATMOS_OZNMON}}

if [[ ! -d ${TANKverf_ozn} ]]; then mkdir -p -m 775 ${TANKverf_ozn} ; fi

#---------------------------------------
# set up validation file
Expand All @@ -77,10 +74,6 @@ err=$?
################################
# Remove the Working Directory
################################
KEEPDATA=${KEEPDATA:-NO}
cd ${DATAROOT}
if [ ${KEEPDATA} = NO ] ; then
rm -rf ${DATA}
fi
[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}"

exit 0
26 changes: 10 additions & 16 deletions jobs/JGDAS_ATMOS_VERFRAD
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,13 @@
# Set up environment for GDAS Radiance Monitor job
#############################################################
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy"
source "${HOMEgfs}/ush/jjob_header.sh" -e "verfrad" -c "base verfrad"

export COMPONENT="atmos"

export RAD_DATA_IN=${DATA}

export RADMON_SUFFIX=${RADMON_SUFFIX:-${RUN}}
export CYCLE_INTERVAL=${CYCLE_INTERVAL:-6}

mkdir -p ${RAD_DATA_IN}
cd ${RAD_DATA_IN}

##############################################
# Specify Execution Areas
##############################################
Expand Down Expand Up @@ -52,13 +47,15 @@ export p_cyc=${pdate:8:2}
# COMOUT - WHERE GSI OUTPUT RESIDES
# TANKverf - WHERE OUTPUT DATA WILL RESIDE
#############################################
export TANKverf=${TANKverf:-$(compath.py ${envir}/${NET}/${gfs_ver})}
export TANKverf_rad=${TANKverf_rad:-${TANKverf}/${RUN}.${PDY}/${cyc}/atmos/radmon}
export TANKverf_radM1=${TANKverf_radM1:-${TANKverf}/${RUN}.${P_PDY}/${p_cyc}/atmos/radmon}

YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_RADMON
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_RADMON_PREV:COM_ATMOS_RADMON_TMPL
KateFriedman-NOAA marked this conversation as resolved.
Show resolved Hide resolved

mkdir -p -m 775 ${TANKverf_rad}
export TANKverf_rad=${TANKverf_rad:-${COM_ATMOS_RADMON}}
export TANKverf_radM1=${TANKverf_radM1:-${COM_ATMOS_RADMON_PREV}}
KateFriedman-NOAA marked this conversation as resolved.
Show resolved Hide resolved

if [[ ! -d ${TANKverf_rad} ]]; then mkdir -p -m 775 ${TANKverf_rad} ; fi
if [[ ! -d ${TANKverf_radM1} ]]; then mkdir -p -m 775 ${TANKverf_radM1} ; fi

########################################
# Set necessary environment variables
Expand Down Expand Up @@ -89,9 +86,6 @@ fi
################################
# Remove the Working Directory
################################
KEEPDATA=${KEEPDATA:-YES}
cd ${DATAROOT}
if [ ${KEEPDATA} = NO ] ; then
rm -rf ${RAD_DATA_IN}
fi
[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}"

exit 0
19 changes: 9 additions & 10 deletions jobs/JGDAS_ATMOS_VMINMON
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# GDAS Minimization Monitor (MinMon) job
###########################################################
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vminmon" -c "base vminmon"

###########################################################
# obtain unique process id (pid) and make temp directories
Expand Down Expand Up @@ -40,12 +40,15 @@ export p_cyc=${pdate:8:2}
#############################################
# TANKverf - WHERE OUTPUT DATA WILL RESIDE
#############################################
export M_TANKverf=${M_TANKverf:-${COM_IN}/${RUN}.${PDY}/${cyc}/atmos/minmon}
export M_TANKverfM1=${M_TANKverfM1:-${COM_IN}/${RUN}.${P_PDY}/${p_cyc}/atmos/minmon}

YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_MINMON
YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL

export M_TANKverf=${M_TANKverf:-${COM_ATMOS_MINMON}}
export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_MINMON_PREV}}

mkdir -p -m 775 ${M_TANKverf}
if [[ ! -d ${M_TANKverf} ]]; then mkdir -p -m 775 ${M_TANKverf} ; fi
if [[ ! -d ${M_TANKverfM1} ]]; then mkdir -p -m 775 ${M_TANKverfM1} ; fi


########################################
Expand All @@ -65,10 +68,6 @@ err=$?
################################
# Remove the Working Directory
################################
KEEPDATA=${KEEPDATA:-NO}
cd ${DATAROOT}
if [ ${KEEPDATA} = NO ] ; then
rm -rf ${DATA}
fi
[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}"

exit 0
22 changes: 10 additions & 12 deletions jobs/JGFS_ATMOS_VMINMON
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# GFS Minimization Monitor (MinMon) job
###########################################################
source "${HOMEgfs}/ush/preamble.sh"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vrfy" -c "base vrfy"
source "${HOMEgfs}/ush/jjob_header.sh" -e "vminmon" -c "base vminmon"

###########################################################
# obtain unique process id (pid) and make temp directories
Expand Down Expand Up @@ -39,12 +39,15 @@ export p_cyc=${pdate:8:2}
# TANKverf - WHERE OUTPUT DATA WILL RESIDE
#############################################
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS
YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_ANALYSIS_PREV:COM_ATMOS_ANALYSIS_TMPL
YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_MINMON
YMD=${P_PDY} HH=${p_cyc} generate_com -rx COM_ATMOS_MINMON_PREV:COM_ATMOS_MINMON_TMPL

M_TANKverf=${M_TANKverf:-${COM_ATMOS_ANALYSIS}/minmon}
export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_ANALYSIS_PREV}/minmon}
export M_TANKverf=${M_TANKverf:-${COM_ATMOS_MINMON}}
export M_TANKverfM1=${M_TANKverfM1:-${COM_ATMOS_MINMON_PREV}}

if [[ ! -d ${M_TANKverf} ]]; then mkdir -p -m 775 ${M_TANKverf} ; fi
if [[ ! -d ${M_TANKverfM1} ]]; then mkdir -p -m 775 ${M_TANKverfM1} ; fi

mkdir -p -m 775 ${M_TANKverf}

########################################
# Set necessary environment variables
Expand All @@ -63,11 +66,6 @@ err=$?
################################
# Remove the Working Directory
################################
KEEPDATA=${KEEPDATA:-NO}
cd ${DATAROOT}

if [ ${KEEPDATA} = NO ] ; then
rm -rf ${DATA}
fi

[[ "${KEEPDATA}" = "NO" ]] && rm -rf "${DATA}"

exit 0
3 changes: 2 additions & 1 deletion jobs/JGLOBAL_ARCHIVE
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ YMD=${PDY} HH=${cyc} generate_com -rx COM_ATMOS_ANALYSIS COM_ATMOS_BUFR COM_ATMO
COM_ICE_HISTORY COM_ICE_INPUT COM_ICE_RESTART \
COM_OBS COM_TOP \
COM_OCEAN_HISTORY COM_OCEAN_INPUT COM_OCEAN_RESTART COM_OCEAN_XSECT COM_OCEAN_2D COM_OCEAN_3D \
COM_WAVE_GRID COM_WAVE_HISTORY COM_WAVE_STATION
COM_WAVE_GRID COM_WAVE_HISTORY COM_WAVE_STATION \
COM_ATMOS_OZNMON COM_ATMOS_RADMON COM_ATMOS_MINMON

for grid in "0p25" "0p50" "1p00"; do
YMD=${PDY} HH=${cyc} GRID=${grid} generate_com -rx "COM_ATMOS_GRIB_${grid}:COM_ATMOS_GRIB_GRID_TMPL"
Expand Down
22 changes: 22 additions & 0 deletions jobs/rocoto/verfozn.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"

###############################################################
# Source FV3GFS workflow modules
source "${HOMEgfs}/ush/load_fv3gfs_modules.sh"
status=$?
(( status != 0 )) && exit "${status}"

export job="verfozn"
export jobid="${job}.$$"

###############################################################
# Execute the JJOB
echo
echo "=============== START TO RUN OZMON DATA EXTRACTION ==============="

"${HOMEgfs}/jobs/JGDAS_ATMOS_VERFOZN"
status=$?

exit "${status}"
22 changes: 22 additions & 0 deletions jobs/rocoto/verfrad.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"

###############################################################
# Source FV3GFS workflow modules
source "${HOMEgfs}/ush/load_fv3gfs_modules.sh"
status=$?
(( status != 0 )) && exit "${status}"

export job="verfrad"
export jobid="${job}.$$"

###############################################################
# Execute the JJOB
echo
echo "=============== START TO RUN RADMON DATA EXTRACTION ==============="

"${HOMEgfs}/jobs/JGDAS_ATMOS_VERFRAD"
status=$?

exit "${status}"
22 changes: 22 additions & 0 deletions jobs/rocoto/vminmon.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
#! /usr/bin/env bash

source "${HOMEgfs}/ush/preamble.sh"

###############################################################
# Source FV3GFS workflow modules
source "${HOMEgfs}/ush/load_fv3gfs_modules.sh"
status=$?
(( status != 0 )) && exit "${status}"

export job="vminmon"
export jobid="${job}.$$"

###############################################################
# Execute the JJOB
echo
echo "=============== START TO RUN MINMON ==============="

"${HOMEgfs}/jobs/J${RUN^^}_ATMOS_VMINMON"
status=$?

exit "${status}"
50 changes: 0 additions & 50 deletions jobs/rocoto/vrfy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,6 @@ CDATEm1=$(${NDATE} -24 "${PDY}${cyc}")
export CDATEm1
export PDYm1=${CDATEm1:0:8}

CDATEm1c=$(${NDATE} -06 "${PDY}${cyc}")
PDYm1c=${CDATEm1c:0:8}
pcyc=${CDATEm1c:8:2}


###############################################################
# TODO: We can likely drop support for these dev-only grib1 precip files
echo
Expand Down Expand Up @@ -57,51 +52,6 @@ if [[ "${RUNMOS}" == "YES" && "${CDUMP}" == "gfs" ]]; then
fi


###############################################################
echo
echo "=============== START TO RUN RADMON DATA EXTRACTION ==============="

if [[ "${VRFYRAD}" == "YES" && "${CDUMP}" == "${CDFNL}" && "${PDY}${cyc}" != "${SDATE}" ]]; then

export EXP=${PSLOT}
export TANKverf_rad="${TANKverf}/stats/${PSLOT}/${RUN}.${PDY}/${cyc}"
export TANKverf_radM1="${TANKverf}/stats/${PSLOT}/${RUN}.${PDYm1c}/${pcyc}"
export MY_MACHINE=${machine}

${VRFYRADSH}

fi


###############################################################
echo
echo "=============== START TO RUN OZMON DATA EXTRACTION ==============="
if [[ "${VRFYOZN}" == "YES" && "${CDUMP}" == "${CDFNL}" && "${PDY}${cyc}" != "${SDATE}" ]]; then

export EXP=${PSLOT}
export TANKverf_ozn="${TANKverf_ozn}/stats/${PSLOT}/${RUN}.${PDY}/${cyc}"
export TANKverf_oznM1="${TANKverf_ozn}/stats/${PSLOT}/${RUN}.${PDYm1c}/${pcyc}"
export MY_MACHINE=${machine}

${VRFYOZNSH}

fi


###############################################################
echo
echo "=============== START TO RUN MINMON ==============="
if [[ "${VRFYMINMON}" == "YES" && "${PDY}${cyc}" != "${SDATE}" && "${MODE}" = "cycled" ]]; then

export M_TANKverfM0="${M_TANKverf}/stats/${PSLOT}/${RUN}.${PDY}/${cyc}"
export M_TANKverfM1="${M_TANKverf}/stats/${PSLOT}/${RUN}.${PDYm1c}/${pcyc}"
export MY_MACHINE=${machine}

${VRFYMINSH}

fi


################################################################################
echo
echo "=============== START TO RUN CYCLONE TRACK VERIFICATION ==============="
Expand Down
3 changes: 3 additions & 0 deletions parm/config/gfs/config.base.emc.dyn
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,9 @@ export DO_BUFRSND="NO" # BUFR sounding products
export DO_GEMPAK="NO" # GEMPAK products
export DO_AWIPS="NO" # AWIPS products
export DO_VRFY="YES" # VRFY step
export DO_VERFOZN="YES" # Ozone data assimilation monitoring
export DO_VERFRAD="YES" # Radiance data assimilation monitoring
export DO_VMINMON="YES" # GSI minimization monitoring

# NO for retrospective parallel; YES for real-time parallel
# arch.sh uses REALTIME for MOS. Need to set REALTIME=YES
Expand Down
2 changes: 2 additions & 0 deletions parm/config/gfs/config.com
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ declare -rx COM_ATMOS_GENESIS_TMPL=${COM_BASE}'/products/atmos/cyclone/genesis_v
declare -rx COM_ATMOS_TRACK_TMPL=${COM_BASE}'/products/atmos/cyclone/tracks'
declare -rx COM_ATMOS_GOES_TMPL=${COM_BASE}'/products/atmos/goes_sim'
declare -rx COM_ATMOS_IMAGERY_TMPL=${COM_BASE}'/products/atmos/imagery'
declare -rx COM_ATMOS_OZNMON_TMPL=${COM_BASE}'/products/atmos/oznmon'
declare -rx COM_ATMOS_RADMON_TMPL=${COM_BASE}'/products/atmos/radmon'
declare -rx COM_ATMOS_MINMON_TMPL=${COM_BASE}'/products/atmos/minmon'
declare -rx COM_ATMOS_WMO_TMPL=${COM_BASE}'/products/atmos/wmo'

Expand Down
31 changes: 30 additions & 1 deletion parm/config/gfs/config.resources
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@ if [[ $# -ne 1 ]]; then
echo "atmensanlinit atmensanlrun atmensanlfinal"
echo "landanl"
echo "aeroanlinit aeroanlrun aeroanlfinal"
echo "anal sfcanl analcalc analdiag fcst post vrfy fit2obs metp arch cleanup echgres"
echo "anal sfcanl analcalc analdiag fcst post echgres"
echo "verfozn verfrad vminmon vrfy fit2obs metp arch cleanup"
echo "eobs ediag eomg eupd ecen esfc efcs epos earc"
echo "init_chem mom6ic ocnpost"
echo "waveinit waveprep wavepostsbs wavepostbndpnt wavepostbndpntbll wavepostpnt"
Expand Down Expand Up @@ -705,6 +706,34 @@ elif [[ ${step} = "post" ]]; then
if [[ "${npe_node_post_gfs}" -gt "${npe_node_max}" ]]; then export npe_node_post_gfs=${npe_node_max} ; fi
export is_exclusive=True

elif [[ ${step} = "verfozn" ]]; then

export wtime_verfozn="00:05:00"
export npe_verfozn=1
export nth_verfozn=1
export npe_node_verfozn=1
export memory_verfozn="1G"

elif [[ ${step} = "verfrad" ]]; then

export wtime_verfrad="00:20:00"
export npe_verfrad=1
export nth_verfrad=1
export npe_node_verfrad=1
export memory_verfrad="5G"

elif [[ ${step} = "vminmon" ]]; then

export wtime_vminmon="00:05:00"
export npe_vminmon=1
export nth_vminmon=1
export npe_node_vminmon=1
export wtime_vminmon_gfs="00:05:00"
export npe_vminmon_gfs=1
export nth_vminmon_gfs=1
export npe_node_vminmon_gfs=1
export memory_vminmon="1G"

elif [[ ${step} = "vrfy" ]]; then

export wtime_vrfy="03:00:00"
KateFriedman-NOAA marked this conversation as resolved.
Show resolved Hide resolved
Expand Down
9 changes: 9 additions & 0 deletions parm/config/gfs/config.verfozn
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
#! /usr/bin/env bash

########## config.verfozn ##########
echo "BEGIN: config.verfozn"

# Get task specific resources
. "${EXPDIR}/config.resources" verfozn

echo "END: config.verfozn"
Loading