From ab52b2610907aa7aeae78a95c610133c526a9195 Mon Sep 17 00:00:00 2001 From: "Man.Zhang" Date: Thu, 21 Nov 2019 18:48:53 -0700 Subject: [PATCH] delete update_moist module --- physics/HAFS_update_moist.F90 | 138 ------------------------ physics/HAFS_update_moist.meta | 185 --------------------------------- physics/mp_fer_hires.F90 | 3 - 3 files changed, 326 deletions(-) delete mode 100644 physics/HAFS_update_moist.F90 delete mode 100644 physics/HAFS_update_moist.meta diff --git a/physics/HAFS_update_moist.F90 b/physics/HAFS_update_moist.F90 deleted file mode 100644 index dd81ecd55..000000000 --- a/physics/HAFS_update_moist.F90 +++ /dev/null @@ -1,138 +0,0 @@ -!>\file HAFS_update_moist.F90 -!! This file contains CCPP-compliant UPDATE_MOIST() in HWRF. -!! -!! In HWRF , this subroutine should be called before: -!! - radiation() -!! - CUCNVC() -!! - TURBLE() - -!> This module contains the CCPP-compliant UPDATE_MOIST for Ferrier-Aligo MP. - module HAFS_update_moist - - implicit none - - private - - public :: HAFS_update_moist_init, HAFS_update_moist_run, & - HAFS_update_moist_finalize - - contains - - subroutine HAFS_update_moist_init () - end subroutine HAFS_update_moist_init - - subroutine HAFS_update_moist_finalize () - end subroutine HAFS_update_moist_finalize - -!> \defgroup hafs_update_moist HAFS Update Moist Module -!! This subroutine is to update water array with CWM, F_RAIN, and F_ICE -!! and convert moist mixing ratio to dry mixing ratio -!! \section arg_table_HAFS_update_moist_run Argument Table -!! \htmlinclude HAFS_update_moist_run.html -!! - subroutine HAFS_update_moist_run (CWM,QV, F_ICE,F_RAIN & - ,qc,qi,qr & - ,imp_physics & - ,imp_physics_fer_hires & - ,qv_r, qc_r,qr_r,qi_r & !-output: dry mixing ratioes for HWRF physics - ,qs_r, qg_r & - ,spec_adv & - ,LM,IME,errmsg,errflg ) - - USE MACHINE , only : kind_phys - IMPLICIT NONE - -!---------------------- -!-- Argument Variables -!---------------------- -! - INTEGER,INTENT(IN) :: LM,IME -! - - LOGICAL,INTENT(IN) :: SPEC_ADV - REAL(kind=kind_phys),DIMENSION(1:IME,1:LM),INTENT(IN) :: CWM,QV, & - QC,QI, & - QR - REAL(kind=kind_phys),DIMENSION(1:IME,1:LM),INTENT(IN) :: & - F_ICE, & - F_RAIN - integer, intent(in) :: imp_physics - integer, intent(in) :: imp_physics_fer_hires - - !dry mixing ratio used in HWRF RRTMG/TURBL/FER - REAL(kind=kind_phys),DIMENSION(1:IME,1:LM),INTENT(OUT) :: qv_r, & - qc_r, & - qi_r, & - qr_r, & - qs_r, & - qg_r - -! -!-------------------- -!-- Local Variables -!-------------------- -! - INTEGER :: I,K - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg -! -!----------------------------------------------------------------------- -!*********************************************************************** -!----------------------------------------------------------------------- - -! Initialize CCPP error handling variables - errmsg = '' - errflg = 0 - -!-- Update WATER arrays when advecting only total condensate (spec_adv=F) -!-- and F_* or at the initial time step - if (imp_physics == imp_physics_fer_hires) then - if (spec_adv) then - qv_r (i,k)=qv(i,k)/(1.-qv(i,k)) - qc_r (i,k)=qc(i,k)/(1.-qv(i,k)) - qi_r (i,k)=qi(i,k)/(1.-qv(i,k)) - qr_r (i,k)=qr(i,k)/(1.-qv(i,k)) - qs_r (i,k)= 0. - qg_r (i,k)= 0. - - else ! .not.spec_adv - DO K=1,LM - DO I=1,IME - !!MZ: HWRF::UPDATE_MOIST() solution - !calculate dry mixing ratio of all q - qv_r (i,k)=qv(i,k)/(1.-qv(i,k)) - qi_r(I,K) =0. - qr_r(I,K) =0. - qc_r(I,K) =0. - IF(F_ICE(I,K)>=1.) THEN - qi_r(I,K) = CWM(i,k) - ELSEIF(F_ICE(I,K)<=0.) THEN - qc_r(I,K) = CWM(I,K) - ELSE - qi_r(I,K) = F_ICE(I,K)*CWM(I,K) - qc_r(I,K) = CWM(I,K)-qi_r(I,K) - ENDIF - - IF(qc_r(I,K)>0. .AND. F_RAIN(I,K)>0.) THEN - IF(F_RAIN(I,K)>=1.)THEN - qr_r(I,K)=qc_r(I,K) - qc_r(I,K)=0. - ELSE - qr_r(I,K)=F_RAIN(I,K)*qc_r(I,K) - qc_r(I,K)=qc_r(I,K)-qr_r(I,K) - ENDIF - ENDIF - qs_r (I,K) = 0. - qg_r (I,K) = 0. - ENDDO - ENDDO - end if - else !.not. fer_hires - write(errmsg,'(*(a))') "Logic error: HAFS_update_moist only works for HWRF physics" - errflg = 1 - return - end if - - end subroutine HAFS_update_moist_run - - end module HAFS_update_moist diff --git a/physics/HAFS_update_moist.meta b/physics/HAFS_update_moist.meta deleted file mode 100644 index 4ceeb5b7a..000000000 --- a/physics/HAFS_update_moist.meta +++ /dev/null @@ -1,185 +0,0 @@ -[ccpp-arg-table] - name = HAFS_update_moist_run - type = scheme -[cwm] - standard_name = total_cloud_condensate_mixing_ratio_updated_by_physics - long_name = total cloud condensate mixing ratio (except water vapor) updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[qv] - standard_name = water_vapor_specific_humidity_updated_by_physics - long_name = water vapor specific humidity updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[f_ice] - standard_name = fraction_of_ice_water_cloud - long_name = fraction of ice water cloud - units = frac - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[f_rain] - standard_name = fraction_of_rain_water_cloud - long_name = fraction of rain water cloud - units = frac - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[qc] - standard_name = cloud_condensed_water_mixing_ratio_updated_by_physics - long_name = moist (dry+vapor, no condensates) mixing ratio of cloud condensed water updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[qi] - standard_name = ice_water_mixing_ratio_updated_by_physics - long_name = moist (dry+vapor, no condensate) mixing ratio of ice water updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[qr] - standard_name = rain_water_mixing_ratio_updated_by_physics - long_name = moist (dry+vapor, no condensates) mixing ratio of rain water updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = in - optional = F -[imp_physics] - standard_name = flag_for_microphysics_scheme - long_name = choice of microphysics scheme - units = flag - dimensions = () - type = integer - intent = in - optional = F -[imp_physics_fer_hires] - standard_name = flag_for_fer_hires_microphysics_scheme - long_name = choice of Ferrier-Aligo microphysics scheme - units = flag - dimensions = () - type = integer - intent = in - optional = F -[qv_r] - standard_name = humidity_mixing_ratio - long_name = the ratio of the mass of water vapor to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[qc_r] - standard_name = cloud_liquid_water_mixing_ratio - long_name = the ratio of the mass of liquid water to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[qr_r] - standard_name = cloud_rain_water_mixing_ratio - long_name = the ratio of the mass rain water to the mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[qi_r] - standard_name = cloud_ice_mixing_ratio - long_name = the ratio of the mass of ice to mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[qs_r] - standard_name = cloud_snow_mixing_ratio - long_name = the ratio of the mass of snow to mass of dry air - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[qg_r] - standard_name = mass_weighted_rime_factor_updated_by_physics - long_name = mass weighted rime factor updated by physics - units = kg kg-1 - dimensions = (horizontal_dimension,vertical_dimension) - type = real - kind = kind_phys - intent = out - optional = F -[spec_adv] - standard_name = flag_for_individual_cloud_species_advected - long_name = flag for individual cloud species advected - units = flag - dimensions = () - type = logical - intent = in - optional = F -[lm] - standard_name = vertical_dimension - long_name = number of vertical levels - units = count - dimensions = () - type = integer - intent = in - optional = F -[ime] - standard_name = horizontal_dimension - long_name = horizontal dimension - units = count - dimensions = () - type = integer - intent = in - optional = F -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out - optional = F -[errflg] - standard_name = ccpp_error_flag - long_name = error flag for error handling in CCPP - units = flag - dimensions = () - type = integer - intent = out - optional = F -######################################################################## -[ccpp-arg-table] - name = HAFS_update_moist_finalize - type = scheme -######################################################################## -[ccpp-arg-table] - name = HAFS_update_moist_init - type = scheme diff --git a/physics/mp_fer_hires.F90 b/physics/mp_fer_hires.F90 index e0f4cf77c..9f265db22 100644 --- a/physics/mp_fer_hires.F90 +++ b/physics/mp_fer_hires.F90 @@ -169,9 +169,6 @@ SUBROUTINE mp_fer_hires_run(NCOL, NLEV, DT ,SPEC_ADV & real(kind_phys), intent(inout) :: qr(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qi(1:ncol,1:nlev) real(kind_phys), intent(inout) :: qg(1:ncol,1:nlev) ! QRIMEF - ! real(kind_phys), intent( out) :: qc_m(1:ncol,1:nlev) - ! real(kind_phys), intent( out) :: qr_m(1:ncol,1:nlev) - ! real(kind_phys), intent( out) :: qi_m(1:ncol,1:nlev) real(kind_phys), intent(inout) :: prec(1:ncol) ! real(kind_phys) :: acprec(1:ncol) !MZ: change to local