⚑ Fortran 90 / 2008 Double Precision
πŸ“₯ 339 Downloads

Rotary Vacuum Drum Filter (Ruth Filtration)

Standalone, self-contained numerical routine. Verify algorithms, inspect boundary condition equations, or compile locally for batch parametric runs.

πŸ”¬

Solver Purpose & Physical Scope

Size continuous rotary vacuum drum filters, computing dry cake production rate (kg/h), filtrate volumetric capacity (mΒ³/h), cake thickness, and cycle times.

πŸ“‚ Discipline: Masstransfer ⚑ Precision: IEEE-754 64-bit Real(`real(8)`) πŸ“₯ Total Downloads: 339 times πŸ“„ Source File: rotary_vacuum_drum_filter.f90
πŸ“ calcul/MassTransfer / rotary_vacuum_drum_filter.f90
program rotary_vacuum_drum_filter
    implicit none
    integer :: iostat_val
    double precision :: D_drum_m, L_drum_m, N_rpm, sub_frac, dP_kPa
    double precision :: alpha_mkg, Rm_m1, w_kgm3, mu_cP, rho_cake_kgm3
    double precision :: A_tot_m2, t_cycle_s, t_form_s, dP_Pa, mu_Pas
    double precision :: V_cycle_m3, Q_filtrate_m3h, M_cake_kgh, L_cake_mm
    double precision, parameter :: PI = 3.141592653589793d0

    ! Read inputs
    read(*,*,iostat=iostat_val) D_drum_m       ! Drum Diameter [m] (e.g. 2.0)
    read(*,*,iostat=iostat_val) L_drum_m       ! Drum Length [m] (e.g. 3.0)
    read(*,*,iostat=iostat_val) N_rpm          ! Drum Speed [RPM] (e.g. 1.5)
    read(*,*,iostat=iostat_val) sub_frac       ! Submergence Fraction (e.g. 0.35)
    read(*,*,iostat=iostat_val) dP_kPa         ! Vacuum Delta-P [kPa] (e.g. 60.0)
    read(*,*,iostat=iostat_val) alpha_mkg      ! Specific Cake Resistance [m/kg] (e.g. 2.5e11)
    read(*,*,iostat=iostat_val) Rm_m1          ! Filter Medium Resistance [1/m] (e.g. 1.0e10)
    read(*,*,iostat=iostat_val) w_kgm3         ! Dry Solids per m3 Filtrate [kg/m3] (e.g. 120.0)
    read(*,*,iostat=iostat_val) mu_cP          ! Liquid Viscosity [cP] (e.g. 1.0)
    read(*,*,iostat=iostat_val) rho_cake_kgm3  ! Wet Cake Bulk Density [kg/m3] (e.g. 1400.0)

    if (iostat_val /= 0) then
        write(*,*) 'ERROR: Invalid input data for rotary vacuum drum filter calculation.'
        stop
    end if

    if (D_drum_m <= 0.0d0 .or. L_drum_m <= 0.0d0 .or. N_rpm <= 0.0d0 .or. dP_kPa <= 0.0d0) then
        write(*,*) 'ERROR: Drum dimensions, speed, and pressure must be positive.'
        stop
    end if

    A_tot_m2 = PI * D_drum_m * L_drum_m
    t_cycle_s = 60.0d0 / N_rpm
    t_form_s = sub_frac * t_cycle_s
    dP_Pa = dP_kPa * 1000.0d0
    mu_Pas = mu_cP * 1.0d-3

    ! Ruth Continuous Filtration Equation
    V_cycle_m3 = (A_tot_m2 * sub_frac) * &
        (sqrt((Rm_m1 / (alpha_mkg * w_kgm3))**2 + (2.0d0 * dP_Pa * t_form_s) / (mu_Pas * alpha_mkg * w_kgm3)) - &
        (Rm_m1 / (alpha_mkg * w_kgm3)))

    Q_filtrate_m3h = (V_cycle_m3 / t_cycle_s) * 3600.0d0
    M_cake_kgh = w_kgm3 * Q_filtrate_m3h
    L_cake_mm = ((w_kgm3 * V_cycle_m3) / ((A_tot_m2 * sub_frac) * rho_cake_kgm3)) * 1000.0d0

    ! Output Results
    write(*,'(A)') '============================================================'
    write(*,'(A)') ' THERMOFLUIDCALC β€” ROTARY VACUUM DRUM FILTER ENGINE'
    write(*,'(A)') '============================================================'
    write(*,'(A,F10.2,A,F10.2,A)') 'Drum Diam / Length        = ', D_drum_m, ' m / ', L_drum_m, ' m'
    write(*,'(A,F10.2,A,F10.2,A)') 'Total Filter Surface Area = ', A_tot_m2, ' m2 (Submergence = ', sub_frac*100.0d0, ' %)'
    write(*,'(A,F10.2,A,F10.2,A)') 'Drum Speed / Cycle Time   = ', N_rpm, ' RPM / ', t_cycle_s, ' s'
    write(*,'(A,F10.1,A)')  'Operating Vacuum Delta-P  = ', dP_kPa, ' kPa'
    write(*,'(A)') '------------------------------------------------------------'
    write(*,'(A,F10.2,A)')  'Filtrate Volumetric Rate  = ', Q_filtrate_m3h, ' m3/h'
    write(*,'(A,F10.1,A)')  'Dry Cake Production Rate  = ', M_cake_kgh, ' kg/h'
    write(*,'(A,F10.2,A)')  'Formed Cake Thickness     = ', L_cake_mm, ' mm'
    write(*,'(A,F10.2,A)')  'Specific Area Capacity    = ', M_cake_kgh / A_tot_m2, ' kg/(m2.h)'
    write(*,'(A)') '============================================================'

end program rotary_vacuum_drum_filter


πŸ’» How to Compile & Run Locally

1. Compilation (GNU Fortran / Intel oneAPI):

gfortran -O3 rotary_vacuum_drum_filter.f90 -o rotary_vacuum_drum_filter

2. Execution with input.txt redirection:

rotary_vacuum_drum_filter < input.txt

πŸ“„ Sample input.txt File Structure

Sample Data:
2.0
3.0
1.5
0.35
60.0
2.5e11
1.0e10
120.0
1.0
1400.0
Parameter Description:
Drum Diameter D [m]\nDrum Length L [m]\nDrum Rotational Speed [RPM]\nSubmergence Fraction\nOperating Vacuum Delta-P [kPa]\nSpecific Cake Resistance [m/kg]\nFilter Medium Resistance [m⁻¹]\nDry Solids per m³ Filtrate [kg/m³]\nFiltrate Viscosity [cP]\nWet Cake Density [kg/m³]