Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
783 changes: 783 additions & 0 deletions atmosphere_stub.F90

Large diffs are not rendered by default.

43 changes: 43 additions & 0 deletions compile_standalone
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/bin/sh -x
compile_all=1
FC=mpif90
INCS="-I. -I../FV3/gfsphysics/ -I../FMS/include -I../FV3/atmos_cubed_sphere -I../FMS/fv3gfs"
FLAGS64=" -traceback -real-size 64 -DSTOCHY_UNIT_TEST -c "$INCS
FLAGS=" -traceback -DSTOCHY_UNIT_TEST -c "$INCS
if [ $compile_all -eq 1 ];then
rm -f *.i90 *.i *.o *.mod lib*a
$FC ${FLAGS} fv_control_stub.F90
$FC ${FLAGS} atmosphere_stub.F90
$FC ${FLAGS64} stochy_namelist_def.F90
$FC ${FLAGS64} stochy_resol_def.f
$FC ${FLAGS64} stochy_gg_def.f
$FC ${FLAGS64} spectral_layout.F90
$FC ${FLAGS64} stochy_layout_lag.f
$FC ${FLAGS64} pln2eo_stochy.f
$FC ${FLAGS64} setlats_a_stochy.f
$FC ${FLAGS64} setlats_lag_stochy.f
$FC ${FLAGS64} glats_stochy.f
$FC ${FLAGS64} gozrineo_stochy.f
$FC ${FLAGS64} num_parthds_stochy.f
$FC ${FLAGS64} dezouv_stochy.f
$FC ${FLAGS64} dozeuv_stochy.f
$FC ${FLAGS64} epslon_stochy.f
$FC ${FLAGS64} four_to_grid_stochy.f
$FC ${FLAGS64} sumfln_stochy.f
$FC ${FLAGS64} get_lats_node_a_stochy.f
$FC ${FLAGS64} get_ls_node_stochy.f
$FC ${FLAGS64} compns_stochy.F90
$FC ${FLAGS64} stochy_internal_state_mod.F90
$FC ${FLAGS64} getcon_lag_stochy.f
$FC ${FLAGS64} getcon_spectral.F90
$FC ${FLAGS64} initialize_spectral_mod.F90
$FC ${FLAGS64} standalone_stochy_module.F90
$FC ${FLAGS64} stochy_patterngenerator.F90
$FC ${FLAGS64} stochy_data_mod.F90
$FC ${FLAGS64} get_stochy_pattern.F90
$FC ${FLAGS64} stochastic_physics.F90
ar rv libstochastic_physics.a *.o
fi
#$FC ${FLAGS64} get_stochy_pattern.F90
#ar rv libstochastic_physics.a *.o
$FC -traceback -real-size 64 -qopenmp -o standalone_stochy standalone_stochy.F90 ${INCS} -I/apps/netcdf/4.7.0/intel/18.0.5.274/include -L. -lstochastic_physics -L../FV3/atmos_cubed_sphere -lfv3core -L../FMS/FMS_INSTALL -lfms -L../FV3/gfsphysics -lgfsphys -L/scratch2/NCEPDEV/nwprod/NCEPLIBS/compilers/intel/18.0.5.274/lib -lsp_v2.0.3_d -L/scratch1/NCEPDEV/nems/emc.nemspara/soft/esmf/8.0.0bs48-intel18.0.5.274-impi2018.0.4-netcdf4.6.1/lib -Wl,-rpath,/scratch1/NCEPDEV/nems/emc.nemspara/soft/esmf/8.0.0bs48-intel18.0.5.274-impi2018.0.4-netcdf4.6.1/lib -lesmf -L/apps/netcdf/4.7.0/intel/18.0.5.274/lib -lnetcdff -lnetcdf
19 changes: 18 additions & 1 deletion compns_stochy.F90
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ subroutine compns_stochy (me,sz_nml,input_nml_file,fn_nml,nlunit,deltim,iret)
shum_lscale,fhstoch,stochini,skeb_varspect_opt,sppt_sfclimit, &
skeb,skeb_tau,skeb_vdof,skeb_lscale,iseed_skeb,skeb_vfilt,skeb_diss_smooth, &
skeb_sigtop1,skeb_sigtop2,skebnorm,sppt_sigtop1,sppt_sigtop2,&
shum_sigefold,skebint,skeb_npass,use_zmtnblck
shum_sigefold,spptint,shumint,skebint,skeb_npass,use_zmtnblck,new_lscale
namelist /nam_sfcperts/nsfcpert,pertz0,pertshc,pertzt,pertlai, & ! mg, sfcperts
pertvegf,pertalb,iseed_sfc,sfc_tau,sfc_lscale,sppt_land

Expand All @@ -78,6 +78,7 @@ subroutine compns_stochy (me,sz_nml,input_nml_file,fn_nml,nlunit,deltim,iret)
! logicals
do_sppt = .false.
use_zmtnblck = .false.
new_lscale = .false.
do_shum = .false.
do_skeb = .false.
! mg, sfcperts
Expand All @@ -91,6 +92,8 @@ subroutine compns_stochy (me,sz_nml,input_nml_file,fn_nml,nlunit,deltim,iret)
! for SKEB random patterns.
skeb_vfilt = 0
skebint = 0
spptint = 0
shumint = 0
skeb_npass = 11 ! number of passes of smoother for dissipation estiamte
sppt_tau = -999. ! time scales
shum_tau = -999.
Expand Down Expand Up @@ -185,6 +188,20 @@ subroutine compns_stochy (me,sz_nml,input_nml_file,fn_nml,nlunit,deltim,iret)
iret=9
return
ENDIF
IF (spptint == 0.) spptint=deltim
nssppt=nint(spptint/deltim) ! spptint in seconds
IF(nssppt<=0 .or. abs(nssppt-spptint/deltim)>tol) THEN
WRITE(0,*) "SPPT interval is invalid",spptint
iret=9
return
ENDIF
IF (shumint == 0.) shumint=deltim
nsshum=nint(shumint/deltim) ! shumint in seconds
IF(nsshum<=0 .or. abs(nsshum-shumint/deltim)>tol) THEN
WRITE(0,*) "SHUM interval is invalid",shumint
iret=9
return
ENDIF
! mg, sfcperts
IF (pertz0(1) > 0 .OR. pertshc(1) > 0 .OR. pertzt(1) > 0 .OR. &
pertlai(1) > 0 .OR. pertvegf(1) > 0 .OR. pertalb(1) > 0) THEN
Expand Down
Loading