************************************************************ * "Sources of Rising Student Debt in the U.S.: * College Costs, Wage Inequality, and Delinquency" * Written by Heejeong Kim and Jung Hwan Kim * E-mail: heejeong.kim@concordia.ca * junghwankim31@gmail.com * last updated: Nov-10-2025 ************************************************************ All the results are saved in the folder "Results" All the Figures are saved in the folder "Figures" *If not specified, running time is around 1 minute. Folder Model_Fortran - Solves quantitative model - See below for details Folder Section 4.1.1 - PSID regression: run Main_PSID_regression.do first - Wage shock estimation: next run Main_estimation.m. (Running time: 6 hours) - To generate Figures: Run Sectin_4_1_1_Figure.m (Running time: 10 minutes) - Estimation results are automatically saved in "Results/wageprocess.xlsx" - Generate Results/wagepremium.txt Folder NLSY79 - Run nlsy79_code_final.do - Generate calibration moments and logafqt80.csv | dropout_abil.txt - Run nlsy79_abilityfi9lter.m to generate skilled_abil_HP_time.txt; unskilled_abil_HP_time.txt Folder Section 4.2 - Run Figure_7.m to generate Figure7 (Need to run NLSY79 code first) - Figure7.m also writes ability_10.txt and abilitygrid.txt Folder NLSY97 - Run nlsy97_code_final.do to first to generate nlsy97_output.csv - Next, run nlsy97_stat.m Folder NCES - Has tuition information. **************** Folder Model_Fortran Fortran90, compiled in Microsoft Visual Studio. Open MP is used. System Requirement - Stack Reserve Size: 2048000000 - Stack Commit Size: 864000000 - Enable Large Addresses: Support Addresses larger than 2GB - Linker - Additional Dependencies: mkl_intel_lp64.lib mkl_sequential.lib mkl_core.lib legacy_stdio_definitions.lib hdf5_fortran.lib HDF5 v 1.10.7 is installed (https://www.hdfgroup.org/download-hdf5/) F90 files to compile - StdDebtGrowth.f90 : main file for the program - steadystate_solve.f90 : subroutine to solve steady state - StdDebtGrowth_mod.f90 : subroutines - transition_solve : subroutine to solve transition - Lib_HK : folder that contains all the libraries Running time The model is solved on a PC with two Intel Xeon CPU E5-2640 2.40GHz processors (40 logical cores) and 64GB RAM. With OpenMP, the running time for the benchmark case including transition is around 8 hours All the results are saved "../Results_h5" Figures will be generated by running "Figure_plot_final.m" and figures are saved in the folder "../Figures" 1. Benchmarkcase integer(ik), parameter :: idefault = 0_ik ! 1 - solve the model without delinquency option integer(ik), parameter :: iidr = 0_ik ! 1 - solve the model with IDR integer(ik), parameter :: ituition = 0_ik ! 1 - solve the model without time-varying education costs integer(ik), parameter :: iwp = 0_ik ! 1 - solve the model without time-varying wage premia integer(ik), parameter :: ishock = 0_ik ! 1 - solve the model without time-varying wage shock processes integer(ik), parameter :: iability = 0_ik ! 1 - solve the model without time-varying ability premia 2. Fixed College Costs (All else is equal to the benchmark case) integer(ik), parameter :: ituition = 1_ik ! 1 - solve the model without time-varying education costs 3. Fixed ability premia integer(ik), parameter :: iability = 1_ik ! 1 - solve the model without time-varying ability premia 4. Fixed college wage premia integer(ik), parameter :: iwp = 1_ik ! 1 - solve the model without time-varying wage premia 5. Fixed variances of wage shocks integer(ik), parameter :: ishock = 1_ik ! 1 - solve the model without time-varying wage shock processes 6. No-delinquency economy integer(ik), parameter :: idefault = 1_ik ! 1 - solve the model without delinquency option 7. IDR economy integer(ik), parameter :: iidr = 1_ik ! 1 - solve the model with IDR 8. The economy with wage garnishment real(rk), parameter :: wgar = 0.02_rk ! wage garnishment in robustness