Page 1 Source Listing ETCALC 2025-03-12 18:24 ETCALC.f 1 SUBROUTINE ETCALC(ETA,ETP,ESD,VEGFAC,ISOIL,SMC,CMC, 2 & EC,EDIR,ETRANS,ESNOW,SMCDRY,SMCMAX) 3 C ---------------------------------------------------------------------- 4 C DETERMINE INDIVIDUAL COMPONENTS OF SURFACE EVAPORATION 5 C INPUT: 6 C ETA = TOTAL SURFACE EVAPORATION (W/m2) 7 C ETP = POTENTIAL EVAPORATION (W/m2) 8 C ESD = WATER EQUIVALENT SNOW DEPTH (m) 9 C VEGFAC = GREEN VEGETATION FRACTION (fraction ...or percent?) 10 C ISOIL = SOIL TYPE (1-9) 11 C SMC = UPPER SOIL LAYER (0-10 CM) SOIL MOISTURE (VOLUMETRIC) 12 C CMC = CANOPY WATER CONTENT (m) 13 C OUTPUT: 14 C EC = EVAPORATION OF CANOPY WATER (W/m2) 15 C EDIR = DIRECT SOIL EVAPORATION (W/m2) 16 C ETRANS = TRANSPIRATION (W/m2) 17 C ESNOW = SNOW SUBLIMATION (W/m2) 18 C ---------------------------------------------------------------------- 19 REAL SMDRY(9),SMMAX(9) 20 21 DATA CFACTR,CMCMAX /0.5,0.5E-3/ 22 C ---------------------------------------------------------------------- 23 C SOIL TYPES ZOBLER (1986), COSBY ET AL (1984) 24 C 1 COARSE LOAMY SAND 25 C 2 MEDIUM SILTY CLAY LOAM 26 C 3 FINE LIGHT CLAY 27 C 4 COARSE-MEDIUM SANDY LOAM 28 C 5 COARSE-FINE SANDY CLAY 29 C 6 MEDIUM-FINE CLAY LOAM 30 C 7 COARSE-MED-FINE SANDY CLAY LOAM 31 C 8 ORGANIC LOAM 32 C 9 GLACIAL LAND ICE LOAMY SAND (NA using 0.82) 33 C ---------------------------------------------------------------------- 34 DATA SMDRY /0.029, 0.119, 0.139, 0.047, 0.100, 0.103, 35 & 0.069, 0.066, 0.029/ 36 DATA SMMAX /0.421, 0.464, 0.468, 0.434, 0.406, 0.465, 37 & 0.404, 0.439, 0.421/ 38 DATA FXEXP /2.0/ 39 40 C ---------------------------------------------------------------------- 41 C INITIALIZE EVAPORATION COMPONENTS 42 C ---------------------------------------------------------------------- 43 EC = 0.0 44 EDIR = 0.0 45 ETRANS = 0.0 46 ESNOW = 0.0 47 48 C ---------------------------------------------------------------------- 49 C SET SMCDRY AND SMCMAX VALUES 50 C ---------------------------------------------------------------------- 51 SMCDRY = SMDRY(ISOIL) 52 SMCMAX = SMMAX(ISOIL) 53 54 C ---------------------------------------------------------------------- 55 C DETERMINE INDIVIDUAL COMPONENTS OF EVAPORATION 56 C NO SURFACE EVAPORATION COMPONENTS IF POTENTIAL (ETP)<0 57 C IF SNOW ON THE GROUND (ESD>0), ALL EVAPORATION IS SNOW SUBLIMATION, Page 2 Source Listing ETCALC 2025-03-12 18:24 ETCALC.f 58 C ELSE IT IT A SUM OF CANOPY EVAP, DIRECT SOIL EVAP AND TRANSPIRATION 59 C ---------------------------------------------------------------------- 60 IF (ETP .GT. 0.) THEN 61 IF (ESD .GT. 0.) THEN 62 ESNOW = ETA 63 ELSE 64 65 C ---------------------------------------------------------------------- 66 C CANOPY EVAPORATION 67 C ---------------------------------------------------------------------- 68 IF (CMC .GT. 0) THEN 69 IF (CMC .GT. CMCMAX) CMC = CMCMAX 70 EC = VEGFAC*((CMC/CMCMAX)**CFACTR)*ETP 71 ENDIF 72 73 C ---------------------------------------------------------------------- 74 C DIRECT SOIL EVAPORATION A FUNCTION OF RELATIVE SOIL MOISTURE 75 C AVAILABILITY, LINEAR WHEN FXEXP=1. 76 C ---------------------------------------------------------------------- 77 SRATIO = (SMC-SMCDRY)/(SMCMAX-SMCDRY) 78 IF (SRATIO .GT. 0.) THEN 79 FX = SRATIO**FXEXP 80 FX = MAX(0.,MIN(FX,1.)) 81 ELSE 82 FX = 0. 83 ENDIF 84 EDIR = FX*(1.0-VEGFAC)*ETP 85 86 C ---------------------------------------------------------------------- 87 C CALCULATE TRANSPIRATION AS A RESIDUAL OF THE TOTAL MINUS EDIR AND EC 88 C ---------------------------------------------------------------------- 89 ETRANS = ETA - EDIR - EC 90 ENDIF 91 IF (ETRANS .LT. 0.) ETRANS = 0. 92 93 ENDIF 94 95 RETURN 96 END Page 3 Source Listing ETCALC 2025-03-12 18:24 Entry Points ETCALC.f ENTRY POINTS Name etcalc_ SYMBOL CROSS REFERENCE Name Object Declared Type Bytes Dimen Elements Attributes References CFACTR Local 21 R(4) 4 scalar 21,70 CMC Dummy 1 R(4) 4 scalar ARG,INOUT 68,69,70 CMCMAX Local 21 R(4) 4 scalar 21,69,70 EC Dummy 2 R(4) 4 scalar ARG,INOUT 43,70,89 EDIR Dummy 2 R(4) 4 scalar ARG,INOUT 44,84,89 ESD Dummy 1 R(4) 4 scalar ARG,INOUT 61 ESNOW Dummy 2 R(4) 4 scalar ARG,INOUT 46,62 ETA Dummy 1 R(4) 4 scalar ARG,INOUT 62,89 ETCALC Subr 1 ETP Dummy 1 R(4) 4 scalar ARG,INOUT 60,70,84 ETRANS Dummy 2 R(4) 4 scalar ARG,INOUT 45,89,91 FX Local 79 R(4) 4 scalar 79,80,82,84 FXEXP Local 38 R(4) 4 scalar 38,79 ISOIL Dummy 1 I(4) 4 scalar ARG,INOUT 51,52 MAX Func 80 scalar 80 MIN Func 80 scalar 80 SMC Dummy 1 R(4) 4 scalar ARG,INOUT 77 SMCDRY Dummy 2 R(4) 4 scalar ARG,INOUT 51,77 SMCMAX Dummy 2 R(4) 4 scalar ARG,INOUT 52,77 SMDRY Local 19 R(4) 4 1 9 34,51 SMMAX Local 19 R(4) 4 1 9 36,52 SRATIO Local 77 R(4) 4 scalar 77,78,79 VEGFAC Dummy 1 R(4) 4 scalar ARG,INOUT 70,84 Page 4 Source Listing ETCALC 2025-03-12 18:24 Subprograms/Common Blocks ETCALC.f SUBPROGRAMS/COMMON BLOCKS Name Object Declared Type Bytes Dimen Elements Attributes References ETCALC Subr 1 COMPILER OPTIONS BEING USED -align noall -align nonone -align nocommons -align nodcommons -align noqcommons -align nozcommons -align records -align nosequence -align norec1byte -align norec2byte -align norec4byte -align norec8byte -align norec16byte -align norec32byte -align norec64byte -align noarray8byte -align noarray16byte -align noarray32byte -align noarray64byte -align noarray128byte -align noarray256byte -altparam -assume accuracy_sensitive -assume nobscc -assume nobuffered_io -assume nobuffered_stdout -assume byterecl -assume nocontiguous_assumed_shape -assume nocontiguous_pointer -assume nocc_omp -assume nocstring -assume nodummy_aliases -assume nofpe_summary -assume noieee_fpe_flags -assume nominus0 -assume noold_boz -assume old_complex_align -assume old_unit_star -assume old_inquire_recl -assume old_ldout_format -assume old_ldout_zero -assume noold_logical_assign -assume noold_logical_ldio -assume old_maxminloc -assume old_xor -assume noprotect_allocates -assume protect_constants -assume noprotect_parens -assume split_common -assume source_include -assume nostd_intent_in -assume std_minus0_rounding -assume nostd_mod_proc_name -assume std_value -assume realloc_lhs -assume underscore -assume no2underscores -assume norecursion no -auto -auto_scalar no -bintext -ccdefault default -check noarg_temp_created -check noassume -check nobounds -check nocontiguous -check noformat -check nooutput_conversion -check nooverflow -check nopointers -check noshape -check nostack -check nouninitialized -check noudio_iostat -coarray-num-procs 0 no -coarray-config-file -convert big_endian -cross_reference -D __INTEL_COMPILER=1910 -D __INTEL_COMPILER_UPDATE=3 -D __unix__ -D __unix -D __linux__ -D __linux -D __gnu_linux__ -D unix -D linux -D __ELF__ -D __x86_64 -D __x86_64__ -D __amd64 -D __amd64__ -D __INTEL_COMPILER_BUILD_DATE=20200925 -D __INTEL_OFFLOAD Page 5 Source Listing ETCALC 2025-03-12 18:24 ETCALC.f -D __MMX__ -D __SSE__ -D __SSE_MATH__ -D __SSE2__ -D __SSE2_MATH__ -D __SSE3__ -D __SSSE3__ -D __SSE4_1__ -D __SSE4_2__ -D __POPCNT__ -D __PCLMUL__ -D __AES__ -D __AVX__ -D __F16C__ -D __AVX_I__ -D __RDRND__ -D __FMA__ -D __FP_FAST_FMA -D __FP_FAST_FMAF -D __BMI__ -D __LZCNT__ -D __AVX2__ -D __haswell -D __haswell__ -D __tune_haswell__ -D __core_avx2 -D __core_avx2__ -D __tune_core_avx2__ -D __CRAY_X86_ROME -D __CRAYXT_COMPUTE_LINUX_TARGET -double_size 64 no -d_lines no -Qdyncom -error_limit 30 no -f66 no -f77rtl no -fast -fpscomp nofilesfromcmd -fpscomp nogeneral -fpscomp noioformat -fpscomp noldio_spacing -fpscomp nologicals -fixed no -fpconstant -fpe3 -fprm nearest no -ftz -fp_model noprecise -fp_model fast -fp_model nostrict -fp_model nosource -fp_model nodouble -fp_model noextended -fp_model novery_fast -fp_model noexcept -fp_model nono_except -heap_arrays 0 no -threadprivate_compat -g2 -iface nomixed_str_len_arg -iface nono_mixed_str_len_arg -init noarrays -init nohuge -init noinfinity -init nominus_huge -init nominus_infinity -init nominus_tiny -init nonan -init nosnan -init notiny -init nozero no -intconstant -integer_size 32 no -mixed_str_len_arg no -module -names lowercase no -noinclude no -o -offload-build=host -openmp-simd -O2 no -pad_source -real_size 32 no -recursive -reentrancy threaded -vec=simd -show nofullpath -show noinclude -show map -show options no -syntax_only no -threadcom no -U no -vms -w noall -w nonone -w alignments -w nodeclarations -w noexternals -w general -w noignore_bounds -w noignore_loc -w nointerfaces -w noshape -w notruncated_source -w uncalled -w uninitialized -w nounused -w usage no -wrap-margins -includepath : /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/, Page 6 Source Listing ETCALC 2025-03-12 18:24 ETCALC.f .f90,./.f90,/opt/cray/pe/mpich/8.1.12/ofi/intel/19.0/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/ipp/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/mkl/include/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/pstl/stdlib/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/tbb/include/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/intel64/.f90,/pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/icc/.f90, /pe/intel/compilers_and_libraries_2020.4.304/linux/compiler/include/.f90,/usr/lib64/gcc/x86_64-suse-linux/7/include/.f90, /usr/lib64/gcc/x86_64-suse-linux/7/include-fixed/.f90,/usr/include/.f90,/usr/include/.f90,/usr/include/.f90 -list filename : ETCALC.lst no -o COMPILER: Intel(R) Fortran 19.1-1655