From 9ea413cd1c204da26667ed084406c4fe2c3db7d7 Mon Sep 17 00:00:00 2001 From: Weiwei Date: Wed, 9 Oct 2024 10:34:04 -0600 Subject: [PATCH] Connect MMM nTiedtke to CCPP SCM new file: CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 new file: CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.meta new file: CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 new file: CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta deleted: CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 deleted: CONV/nTiedtke/mmm_cu_ntiedtke_post.meta deleted: CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 deleted: CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta renamed: CONV/nTiedtke/cu_ntiedtke.F90 -> CONV/nTiedtke/ufs_cu_ntiedtke.F90 renamed: CONV/nTiedtke/cu_ntiedtke.meta -> CONV/nTiedtke/ufs_cu_ntiedtke.meta renamed: CONV/nTiedtke/cu_ntiedtke_post.F90 -> CONV/nTiedtke/ufs_cu_ntiedtke_post.F90 renamed: CONV/nTiedtke/cu_ntiedtke_post.meta -> CONV/nTiedtke/ufs_cu_ntiedtke_post.meta renamed: CONV/nTiedtke/cu_ntiedtke_pre.F90 -> CONV/nTiedtke/ufs_cu_ntiedtke_pre.F90 renamed: CONV/nTiedtke/cu_ntiedtke_pre.meta -> CONV/nTiedtke/ufs_cu_ntiedtke_pre.meta modified: mmm_physics --- .../nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 | 101 +++++ .../nTiedtke/gfs_mmm_cu_ntiedtke_post.meta | 187 +++++++++ .../CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 | 196 +++++++++ .../nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta | 383 ++++++++++++++++++ .../CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 | 47 --- .../CONV/nTiedtke/mmm_cu_ntiedtke_post.meta | 24 -- physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 | 59 --- .../CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta | 76 ---- .../{cu_ntiedtke.F90 => ufs_cu_ntiedtke.F90} | 22 +- ...{cu_ntiedtke.meta => ufs_cu_ntiedtke.meta} | 6 +- ...dtke_post.F90 => ufs_cu_ntiedtke_post.F90} | 16 +- ...ke_post.meta => ufs_cu_ntiedtke_post.meta} | 4 +- ...iedtke_pre.F90 => ufs_cu_ntiedtke_pre.F90} | 16 +- ...dtke_pre.meta => ufs_cu_ntiedtke_pre.meta} | 4 +- physics/mmm_physics | 2 +- 15 files changed, 902 insertions(+), 241 deletions(-) create mode 100644 physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 create mode 100755 physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.meta create mode 100644 physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 create mode 100755 physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta delete mode 100644 physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 delete mode 100644 physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.meta delete mode 100644 physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 delete mode 100644 physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta rename physics/CONV/nTiedtke/{cu_ntiedtke.F90 => ufs_cu_ntiedtke.F90} (99%) rename physics/CONV/nTiedtke/{cu_ntiedtke.meta => ufs_cu_ntiedtke.meta} (99%) rename physics/CONV/nTiedtke/{cu_ntiedtke_post.F90 => ufs_cu_ntiedtke_post.F90} (64%) rename physics/CONV/nTiedtke/{cu_ntiedtke_post.meta => ufs_cu_ntiedtke_post.meta} (95%) rename physics/CONV/nTiedtke/{cu_ntiedtke_pre.F90 => ufs_cu_ntiedtke_pre.F90} (80%) rename physics/CONV/nTiedtke/{cu_ntiedtke_pre.meta => ufs_cu_ntiedtke_pre.meta} (97%) diff --git a/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 new file mode 100644 index 000000000..b6f13dd9e --- /dev/null +++ b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.F90 @@ -0,0 +1,101 @@ +! ########################################################################################### +! +! ########################################################################################### +module gfs_mmm_cu_ntiedtke_post + use machine, only: kind_phys + + implicit none + + public gfs_mmm_cu_ntiedtke_post_run + +contains +!> \section arg_table_gfs_mmm_cu_ntiedtke_post_run +!! \htmlinclude gfs_mmm_cu_ntiedtke_post_run.html +!! + ! ######################################################################################### + ! + ! ######################################################################################### + subroutine gfs_mmm_cu_ntiedtke_post_run(nCol, nLev, qv, temp, spechum, prevst, prevsq, qc, qi, & + ugrs, vgrs, pres, presi, geoph, geophi, pomg, forcet, forceq, & + raincd_mm, raincd, & + errmsg, errflg) + + ! Input variables + integer, intent(in ) :: & + nCol, & ! Number of horizontal gridpoints + nLev ! Number of vertical levels + real(kind_phys), dimension(:), intent(in ) :: raincd_mm + real(kind_phys), dimension(:,:), intent(in ), optional :: qv + + ! In/out variables + real(kind_phys), dimension(:,:), intent(inout) :: temp, spechum, qc, qi, ugrs, vgrs, pres, presi, pomg + real(kind_phys), dimension(:,:), intent(inout), optional:: forcet, forceq, geoph, geophi + + ! Output variables + real(kind_phys), dimension(:), intent(out ) :: raincd + real(kind_phys), dimension(:,:), intent(out ), optional :: prevst, prevsq + + character(len=*), intent(out) :: & + errmsg ! CCPP error message + integer, intent(out) :: & + errflg ! CCPP error code + + ! Local variables + integer :: i, k, kk + real(kind_phys), dimension(nCol, nLev) :: pt, pqv, pqc, pqi, pu, pv, prsl, zl, omega, tendt, tendq + real(kind_phys), dimension(nCol,nLev+1):: prsli, zi + + ! Initialize CCPP error handling + errmsg = '' + errflg = 0 + + ! Convert water vapor mixing ratio back to specific humidity + spechum = qv/(1.0_kind_phys+qv) + + ! Variables with vertical layer being reversed back + do k=1,nLev + kk = nLev-k+1 + do i=1,nCol + pt(i,k) = temp(i,kk) + pqv(i,k) = spechum(i,kk) + pqc(i,k) = qc(i,kk) + pqi(i,k) = qi(i,kk) + pu(i,k) = ugrs(i,kk) + pv(i,k) = vgrs(i,kk) + prsl(i,k) = pres(i,kk) + prsli(i,k) = presi(i,kk+1) + zl(i,k) = geoph(i,kk) + zi(i,k) = geophi(i,kk+1) + omega(i,k) = pomg(i,kk) + tendt(i,k) = forcet(i,kk) + tendq(i,k) = forceq(i,kk) + enddo + enddo + prsli(:,nLev+1)=presi(:,1) + zi(:,nLev+1)=geophi(:,1) + + !output + temp = pt + spechum = pqv + qc = pqc + qi = pqi + ugrs = pu + vgrs = pv + pres = prsl + presi = prsli + geoph = zl + geophi = zi + pomg = omega + forcet = tendt + forceq = tendq + + ! To calculate tendencies in next iteration + prevst = temp + prevsq = spechum + + ! Convert unit of deep convection induced precipitation from mm to m + raincd = raincd_mm * 1e-3 + + end subroutine gfs_mmm_cu_ntiedtke_post_run + +end module gfs_mmm_cu_ntiedtke_post diff --git a/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.meta new file mode 100755 index 000000000..97e9d0630 --- /dev/null +++ b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_post.meta @@ -0,0 +1,187 @@ +[ccpp-table-properties] + name = gfs_mmm_cu_ntiedtke_post + type = scheme + dependencies = ../../hooks/machine.F + +######################################################################## +[ccpp-arg-table] + name = gfs_mmm_cu_ntiedtke_post_run + type = scheme +[nCol] + standard_name = horizontal_loop_extent + long_name = horizontal loop extent + units = count + dimensions = () + type = integer + intent = in +[nLev] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count + dimensions = () + type = integer + intent = in +[qv] + standard_name = water_vapor_mixing_ratio + long_name = water vapor mixing ratio + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real | kind = kind_phys + intent = in + optional = T +[temp] + standard_name = air_temperature_of_new_state + long_name = temperature updated by physics + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[spechum] + standard_name = specific_humidity_of_new_state + long_name = water vapor specific humidity updated by physics + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[prevst] + standard_name = air_temperature_on_previous_timestep + long_name = temperature from previous time step + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = True +[prevsq] + standard_name = specific_humidity_on_previous_timestep + long_name = moisture from previous time step + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = True +[qc] + standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer + long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[qi] + standard_name = ice_water_mixing_ratio_convective_transport_tracer + long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[ugrs] + standard_name = x_wind_of_new_state + long_name = updated x-direction wind + units = m s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[vgrs] + standard_name = y_wind_of_new_state + long_name = updated y-direction wind + units = m s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[pres] + standard_name = air_pressure + long_name = mean layer pressure + units = Pa + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[presi] + standard_name = air_pressure_at_interface + long_name = air pressure at model layer interfaces + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout +[geoph] + standard_name = geopotential_height + long_name = geopotential height at model layer centers + units = m + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + intent = inout + optional = T +[geophi] + standard_name = geopotential_height_at_interface + long_name = geopotential height at model layer interfaces + units = m + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout + optional = T +[pomg] + standard_name = lagrangian_tendency_of_air_pressure + long_name = layer mean vertical velocity + units = Pa s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[forcet] + standard_name = tendency_of_air_temperature_due_to_nonphysics + long_name = temperature tendency due to dynamics only + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[forceq] + standard_name = tendendy_of_water_vapor_mixing_ratio_due_to_nonphysics + long_name = moisture tendency due to dynamics only + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout + optional = True +[raincd_mm] + standard_name = lwe_thickness_of_deep_convective_precipitation_amount_in_mm + long_name = deep convective rainfall amount on physics timestep in mm + units = mm + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[raincd] + standard_name = lwe_thickness_of_deep_convective_precipitation_amount + long_name = deep convective rainfall amount on physics timestep + units = m + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[errmsg] + standard_name = ccpp_error_message + long_name = error message for error handling in CCPP + units = none + dimensions = () + type = character + kind = len=* + intent = out +[errflg] + standard_name = ccpp_error_code + long_name = error code for error handling in CCPP + units = 1 + dimensions = () + type = integer + intent = out diff --git a/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 new file mode 100644 index 000000000..ebd1a8865 --- /dev/null +++ b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.F90 @@ -0,0 +1,196 @@ +! ########################################################################################### +! +! ########################################################################################### +module gfs_mmm_cu_ntiedtke_pre + use machine, only: kind_phys + + implicit none + + public gfs_mmm_cu_ntiedtke_pre_run + +contains +!> \section arg_table_gfs_mmm_cu_ntiedtke_pre_run +!! \htmlinclude gfs_mmm_cu_ntiedtke_pre_run.html +!! + ! ######################################################################################### + ! + ! ######################################################################################### + subroutine gfs_mmm_cu_ntiedtke_pre_run(nCol, nLev, temp, spechum, qv, temp_new, spechum_new,& + flag_init, flag_restart, kdt, fhour, dtp, prevst, prevsq, forcet, forceq, & + qc, qi, ugrs, vgrs, pres, presi, & + geop, geopi, geoph, geophi, con_1ovg,& + pomg, wet, dry, icy, ep1, con_rd, con_cp, ps, & + hfx_wat, hfx_lnd, hfx_ice, hfx, qfx_wat, qfx_lnd, qfx_ice, qfx, & + slimask, xland, errmsg, errflg) + + ! Input variables + logical, intent(in ) :: flag_init, flag_restart + + integer, intent(in ) :: & + nCol, & ! Number of horizontal gridpoints + nLev, & ! Number of vertical levels + kdt ! Index of time step for current iteration + + integer, dimension(:), intent(in ) :: slimask ! landmask: sea/land/ice=0/1/2 + + real(kind_phys), intent(in ) :: & + fhour, & ! Current forecast time (hour) + dtp, & ! Physics timestep (second) + con_1ovg,& ! 1/g + ep1, & ! (rv/rd) - 1 + con_rd, & ! rd + con_cp ! cp + + real(kind_phys), dimension(:), intent(in ) :: & + hfx_wat, & ! Kinematic surface upward sensible heat flux over water (K m s-1) + hfx_lnd, & ! Kinematic surface upward sensible heat flux over land (K m s-1) + hfx_ice, & ! Kinematic surface upward sensible heat flux over ice (K m s-1) + qfx_wat, & ! Kinematic surface upward latent heat flux over water (kg kg-1 m s-1) + qfx_lnd, & ! Kinematic surface upward latent heat flux over land (kg kg-1 m s-1) + qfx_ice, & ! Kinematic surface upward latent heat flux over ice (kg kg-1 m s-1) + ps ! Surface pressure (Pa) + + ! Variables to be vertically reversed + real(kind_phys), dimension(:,:), intent(in ) :: & + temp, & ! Air temperature (K) + spechum, & ! Specific humidity (kg/kg) + geop, & ! Geopotential (m2 s-2) + geopi ! Geopotential at model layer interface (m2 s-2) + real(kind_phys), dimension(:,:), intent(inout) :: & + temp_new, & ! Air temperature of new state (K) + spechum_new, & ! Specific humidity of new state (kg/kg) + qc, & ! Cloud liquid water mixing ratio of new state (kg/kg) + qi, & ! Cloud ice mixing ratio of new state (kg/kg) + ugrs, & ! x-wind of new state (m/s) + vgrs, & ! y-wind of new state (m/s) + pres, & ! Air pressure (Pa) + presi, & ! Air Pressure at model layer interface (Pa) + pomg ! Layer mean vertical velocity (Pa s-1) + + real(kind_phys), dimension(:,:), intent(in), optional :: prevst, prevsq ! t and q from previous time step + + logical, dimension(:), intent(in) :: & + wet, & ! Flag indicating presence of some ocean or lake surface area fraction + dry, & ! Flag indicating presence of some land surface area fraction + icy ! Flag indicating presence of some sea ice surface area fraction + + ! Output variables + real(kind_phys), dimension(:), intent(out ), optional:: & + hfx, & ! Surface kinematic upward sensible heat flux (W m-2) + qfx, & ! Surface kinematic upward latent heat flux (W m-2) + xland ! Sea/land/ice mask for MMM physics + real(kind_phys), dimension(:,:),intent(out ), optional:: & + qv, & ! Water vapor mixing ratio (kg/kg) + !pqc, & ! Cloud liquid water mixing ratio of new state transported by convection (kg/kg) + !pqi, & ! Cloud ice mixing ratio of new state transported by convection (kg/kg) + forcet, & ! Temperature tendency due to dynamics only (K s-1) + forceq, & ! Moisture tendency due to dynamics only (kg kg-1 s-1) + geoph, & ! Geopotential height (m) + geophi ! Geopoteitial height at model interface (m) + character(len=*), intent(out) :: & + errmsg ! CCPP error message + integer, intent(out) :: & + errflg ! CCPP error code + + ! Local variables + integer :: i, k, kk + real(kind_phys) :: tvcon, rho, dtdyn + real(kind_phys), dimension(nCol, nLev) :: prevsqv, pt, qv_new, pqv, pqc, pqi, pu, pv, prsl, zl, omega, tendt, tendq + real(kind_phys), dimension(nCol,nLev+1):: prsli, zi + + ! Initialize CCPP error handling + errmsg = '' + errflg = 0 + + !> convert specific humidity to water vapor mixing ratio + do k=1,nLev + do i=1,nCol + qv_new(i,k) = spechum_new(i,k)/ (1.0_kind_phys - spechum_new(i,k))! to be vertically reversed + qv(i,k) = spechum(i,k) / (1.0_kind_phys - spechum(i,k)) ! to calculate dynamics tendencies + prevsqv(i,k)= prevsq(i,k) / (1.0_kind_phys - prevsq(i,k)) ! to calculate dynamics tendencies + end do + end do + + ! Calculate tendencies due to nonphys (incl. dynamics+PBL for moisture and dynamics+PBL+radiation for temperature) + if(flag_init .and. .not.flag_restart) then + forcet=0.0 + forceq=0.0 + else + dtdyn=3600.0*(fhour)/kdt + if(dtp > dtdyn) then + forcet=(temp - temp_new)/dtp!prevst)/dtp + forceq=(qv - qv_new)/dtp!prevsqv)/dtp + else + forcet=(temp - temp_new)/dtdyn!prevst)/dtdyn + forceq=(qv - qv_new)/dtdyn!prevsqv)/dtdyn + endif + endif + + !> convert heat fluxes + do i = 1,nCol + tvcon = (1. + ep1 * spechum(i,1)) + rho = ps(i) / (con_rd * temp(i,1) * tvcon) + if (dry(i)) then + hfx(i) = rho * con_cp * hfx_lnd(i) + qfx(i) = rho * qfx_lnd(i) + end if + if (wet(i)) then + hfx(i) = rho * con_cp * hfx_wat(i) + qfx(i) = rho * qfx_wat(i) + end if + + if (icy(i)) then + hfx(i) = rho * con_cp * hfx_ice(i) + qfx(i) = rho * qfx_ice(i) + end if + end do + + ! Compute land/sea mask convention from (0-sea/1-land/2-ice) ---> (1-land/2-sea) + do i=1,nCol + if(slimask(i).eq.0)then + xland(i) = 2 + else + xland(i) = 1 + end if + enddo + + ! Reverse vertical layers for mass flux calculation + do k=1,nLev + kk=nLev-k+1 + do i=1,nCol + pt(i,k) = temp_new(i,kk) + pqv(i,k) = qv_new(i,kk) + pqc(i,k) = qc(i,kk) + pqi(i,k) = qi(i,kk) + pu(i,k) = ugrs(i,kk) + pv(i,k) = vgrs(i,kk) + prsl(i,k) = pres(i,kk) + prsli(i,k) = presi(i,kk+1) + zl(i,k) = geop(i,kk) * con_1ovg ! calculate geopotential height + zi(i,k) = geopi(i,kk+1) * con_1ovg! calculate geopotnetial height + omega(i,k) = pomg(i,kk) + tendt(i,k) = forcet(i,kk) + tendq(i,k) = forceq(i,kk) + enddo + enddo + prsli(:,nLev+1)=presi(:,1) + zi(:,nLev+1)=geopi(:,1) * con_1ovg + + ! Output + temp_new= pt + qv = pqv + qc = pqc + qi = pqi + ugrs = pu + vgrs = pv + pres = prsl + presi = prsli + geoph = zl + geophi = zi + pomg = omega + forcet = tendt + forceq = tendq + + end subroutine gfs_mmm_cu_ntiedtke_pre_run + +end module gfs_mmm_cu_ntiedtke_pre diff --git a/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta new file mode 100755 index 000000000..5c5297edc --- /dev/null +++ b/physics/CONV/nTiedtke/gfs_mmm_cu_ntiedtke_pre.meta @@ -0,0 +1,383 @@ +[ccpp-table-properties] + name = gfs_mmm_cu_ntiedtke_pre + type = scheme + dependencies = ../../hooks/machine.F + +######################################################################## +[ccpp-arg-table] + name = gfs_mmm_cu_ntiedtke_pre_run + type = scheme +[nCol] + standard_name = horizontal_loop_extent + long_name = horizontal loop extent + units = count + dimensions = () + type = integer + intent = in +[nLev] + standard_name = vertical_layer_dimension + long_name = number of vertical levels + units = count + dimensions = () + type = integer + intent = in +[temp] + standard_name = air_temperature + long_name = model layer mean temperature + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[spechum] + standard_name = specific_humidity + long_name = water vapor specific humidity + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in +[temp_new] + standard_name = air_temperature_of_new_state + long_name = temperature updated by physics + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[spechum_new] + standard_name = specific_humidity_of_new_state + long_name = water vapor specific humidity updated by physics + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[qv] + standard_name = water_vapor_mixing_ratio + long_name = water vapor mixing ratio + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = T +[flag_init] + standard_name = flag_for_first_timestep + long_name = flag signaling first time step for time integration loop + units = flag + dimensions = () + type = logical + intent = in +[flag_restart] + standard_name = flag_for_restart + long_name = flag for restart (warmstart) or coldstart + units = flag + dimensions = () + type = logical + intent = in +[kdt] + standard_name = index_of_timestep + long_name = current forecast iteration + units = index + dimensions = () + type = integer + intent = in +[fhour] + standard_name = forecast_time + long_name = curent forecast time + units = h + dimensions = () + type = real + kind = kind_phys + intent = in +[dtp] + standard_name = timestep_for_physics + long_name = physics timestep + units = s + dimensions = () + type = real + kind = kind_phys + intent = in +[prevst] + standard_name = air_temperature_on_previous_timestep + long_name = temperature from previous time step + units = K + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True +[prevsq] + standard_name = specific_humidity_on_previous_timestep + long_name = moisture from previous time step + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = in + optional = True +[forcet] + standard_name = tendency_of_air_temperature_due_to_nonphysics + long_name = temperature tendency due to dynamics only + units = K s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = True +[forceq] + standard_name = tendendy_of_water_vapor_mixing_ratio_due_to_nonphysics + long_name = moisture tendency due to dynamics only + units = kg kg-1 s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = out + optional = True +[qc] + standard_name = cloud_condensed_water_mixing_ratio_convective_transport_tracer + long_name = ratio of mass of cloud water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[qi] + standard_name = ice_water_mixing_ratio_convective_transport_tracer + long_name = ratio of mass of ice water to mass of dry air plus vapor (without condensates) in the convectively transported tracer array + units = kg kg-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[ugrs] + standard_name = x_wind_of_new_state + long_name = updated x-direction wind + units = m s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[vgrs] + standard_name = y_wind_of_new_state + long_name = updated y-direction wind + units = m s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[pres] + standard_name = air_pressure + long_name = mean layer pressure + units = Pa + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[presi] + standard_name = air_pressure_at_interface + long_name = air pressure at model layer interfaces + units = Pa + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = inout +[geop] + standard_name = geopotential + long_name = geopotential at model layer centers + units = m2 s-2 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + intent = in +[geopi] + standard_name = geopotential_at_interface + long_name = geopotential at model layer interfaces + units = m2 s-2 + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = in +[con_1ovg] + standard_name = one_divided_by_the_gravitational_acceleration + long_name = inverse of gravitational acceleration + units = s2 m-1 + dimensions = () + type = real + kind = kind_phys + intent = in +[geoph] + standard_name = geopotential_height + long_name = geopotential height at model layer centers + units = m + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + intent = out + optional = T +[geophi] + standard_name = geopotential_height_at_interface + long_name = geopotential height at model layer interfaces + units = m + dimensions = (horizontal_loop_extent,vertical_interface_dimension) + type = real + kind = kind_phys + intent = out + optional = T +[pomg] + standard_name = lagrangian_tendency_of_air_pressure + long_name = layer mean vertical velocity + units = Pa s-1 + dimensions = (horizontal_loop_extent,vertical_layer_dimension) + type = real + kind = kind_phys + intent = inout +[wet] + standard_name = flag_nonzero_wet_surface_fraction + long_name = flag indicating presence of some ocean or lake surface area fraction + units = flag + dimensions = (horizontal_loop_extent) + type = logical + intent = in +[dry] + standard_name = flag_nonzero_land_surface_fraction + long_name = flag indicating presence of some land surface area fraction + units = flag + dimensions = (horizontal_loop_extent) + type = logical + intent = in +[icy] + standard_name = flag_nonzero_sea_ice_surface_fraction + long_name = flag indicating presence of some sea ice surface area fraction + units = flag + dimensions = (horizontal_loop_extent) + type = logical + intent = in +[ep1] + standard_name = ratio_of_vapor_to_dry_air_gas_constants_minus_one + long_name = rv/rd - 1 (rv = ideal gas constant for water vapor) + units = none + dimensions = () + type = real + kind = kind_phys + intent = in +[con_rd] + standard_name = gas_constant_of_dry_air + long_name = ideal gas constant for dry air + units = J kg-1 K-1 + dimensions = () + type = real + kind = kind_phys + intent = in +[con_cp] + standard_name = specific_heat_of_dry_air_at_constant_pressure + long_name = specific heat of dry air at constant pressure + units = J kg-1 K-1 + dimensions = () + type = real + kind = kind_phys + intent = in +[ps] + standard_name = surface_air_pressure + long_name = surface pressure + units = Pa + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[hfx_wat] + standard_name = kinematic_surface_upward_sensible_heat_flux_over_water + long_name = kinematic surface upward sensible heat flux over water + units = K m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[hfx_lnd] + standard_name = kinematic_surface_upward_sensible_heat_flux_over_land + long_name = kinematic surface upward sensible heat flux over land + units = K m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[hfx_ice] + standard_name = kinematic_surface_upward_sensible_heat_flux_over_ice + long_name = kinematic surface upward sensible heat flux over ice + units = K m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[hfx] + standard_name = kinematic_surface_upward_sensible_heat_flux + long_name = kinematic surface upward sensible heat flux + units = W m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out + optional = T +[qfx_wat] + standard_name = kinematic_surface_upward_latent_heat_flux_over_water + long_name = kinematic surface upward latent heat flux over water + units = kg kg-1 m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[qfx_lnd] + standard_name = kinematic_surface_upward_latent_heat_flux_over_land + long_name = kinematic surface upward latent heat flux over land + units = kg kg-1 m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[qfx_ice] + standard_name = kinematic_surface_upward_latent_heat_flux_over_ice + long_name = kinematic surface upward latent heat flux over ice + units = kg kg-1 m s-1 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = in +[qfx] + standard_name = kinematic_surface_upward_latent_heat_flux + long_name = kinematic surface upward latent heat flux + units = W m-2 + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out + optional = T +[slimask] + standard_name = sea_land_ice_mask + long_name = landmask: sea/land/ice=0/1/2 + units = flag + dimensions = (horizontal_loop_extent) + type = integer + intent = in +[xland] + standard_name = sea_land_ice_mask_mmm + long_name = sea/land/ice mask mmm + units = flag + dimensions = (horizontal_loop_extent) + type = real + kind = kind_phys + intent = out + optional = T +[errmsg] + standard_name = ccpp_error_message + long_name = error message for error handling in CCPP + units = none + dimensions = () + type = character + kind = len=* + intent = out +[errflg] + standard_name = ccpp_error_code + long_name = error code for error handling in CCPP + units = 1 + dimensions = () + type = integer + intent = out diff --git a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 b/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 deleted file mode 100644 index 69a6d98af..000000000 --- a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.F90 +++ /dev/null @@ -1,47 +0,0 @@ -!>\file wsm6.F90 -!! This file runs the nTiedtke scheme - - -!>\defgroup TODO: ADD THIS LINE -!! This module runs the nTiedtke scheme -module mmm_cu_ntiedtke_post - - use ccpp_kinds, only : kind_phys - - use mmm_cu_ntiedtke, only : mmm_cu_ntiedtke_finalize - - implicit none - - public :: mmm_cu_ntiedtke_post_finalize - - private - - logical :: is_initialized = .False. - - contains - -!> \section arg_table_mmm_cu_ntiedtke_finalize Argument Table -!! \htmlinclude mmm_cu_ntiedtke_finalize.html -!! - subroutine mmm_cu_ntiedtke_post_finalize(errmsg, errflg) - - implicit none - - character(len=*), intent( out) :: errmsg - integer, intent( out) :: errflg - - ! Initialize the CCPP error handling variables - errmsg = '' - errflg = 0 - - - - if (.not. is_initialized) return - - call mmm_cu_ntiedtke_finalize(errmsg, errflg) - - is_initialized = .false. - - end subroutine mmm_cu_ntiedtke_post_finalize - -end module mmm_cu_ntiedtke_post diff --git a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.meta deleted file mode 100644 index e7c87625b..000000000 --- a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_post.meta +++ /dev/null @@ -1,24 +0,0 @@ -[ccpp-table-properties] - name = mmm_cu_ntiedtke_post - type = scheme - dependencies = ../../hooks/mmm_kinds.F90,../../mmm_physics/mmm_cu_ntiedtke.F90 - -######################################################################## -[ccpp-arg-table] - name = mmm_cu_ntietdke_post - type = scheme -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out -[errflg] - standard_name = ccpp_error_code - long_name = error code for error handling in CCPP - units = 1 - dimensions = () - type = integer - intent = out diff --git a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 b/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 deleted file mode 100644 index ae139ee86..000000000 --- a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.F90 +++ /dev/null @@ -1,59 +0,0 @@ -!>\file wsm6.F90 -!! This file runs the CU nTiedtke Scheme - - - -!>\defgroup -!! This module runs the nTiedtke Scheme -module mmm_cu_ntiedtke_pre - - use ccpp_kinds, only : kind_phys - use mmm_cu_ntiedtke, only : mmm_cu_ntiedtke_init - - implicit none - - public :: mmm_cu_ntiedtke_pre_init - - private - - logical :: is_initialized = .False. - - contains - -!> This subroutine is a wrapper around the actual cu_ntiedtke_init(). -!! \section arg_table_mmm_cu_ntiedtke_init Argument Table -!! \htmlinclude mmm_cu_ntiedtke_init.html -!! - subroutine mmm_cu_ntiedtke_pre_init(con_cp, con_rd, con_rv, con_hvap, & - con_xls, con_hfus, con_g, errmsg, errflg) - - implicit none - !input arguments: - real(kind=kind_phys), intent(in) :: con_cp !< specific heat of dry air at constant pressure - real(kind=kind_phys), intent(in) :: con_rd !< gas constant dry air - real(kind=kind_phys), intent(in) :: con_rv !< gas constant water vapor - real(kind=kind_phys), intent(in) :: con_hvap !< latent heat of vaporization of water - real(kind=kind_phys), intent(in) :: con_xls !< latent heat of sublimation of water - real(kind=kind_phys), intent(in) :: con_hfus !< latent heat of fusion of water - real(kind=kind_phys), intent(in) :: con_g !< gravitational acceleration - - !--- output arguments: - character(len=*), intent(out) :: errmsg - integer, intent(out) :: errflg - - ! Initialize the CCPP error handling variables - errmsg = '' - errflg = 0 - - if (is_initialized) return - - ! Call ntiedtke init - call mmm_cu_ntiedtke_init(con_cp, con_rd, con_rv, con_hvap, & - con_xls, con_hfus, con_g, errmsg, errflg) - - if (errflg /= 0) return - - is_initialized = .true. - - end subroutine mmm_cu_ntiedtke_pre_init -end module mmm_cu_ntiedtke_pre diff --git a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta deleted file mode 100644 index 547f0981f..000000000 --- a/physics/CONV/nTiedtke/mmm_cu_ntiedtke_pre.meta +++ /dev/null @@ -1,76 +0,0 @@ -[ccpp-table-properties] - name = mmm_cu_ntiedtke_pre - type = scheme - dependencies = ../../hooks/mmm_kinds.F90,../../mmm_physics/mmm_cu_ntiedtke.F90 - -######################################################################## -[ccpp-arg-table] - name = mmm_cu_ntiedtke_pre_run - type = scheme -[con_cp] - standard_name = specific_heat_of_dry_air_at_constant_pressure - long_name = specific heat of dry air at constant pressure - units = J kg-1 K-1 - dimensions = () - type = real - kind = kind_phys - intent = in -[con_rd] - standard_name = gas_constant_dry_air - long_name = gas constant dry air - units = J kg-1 K-1 - dimensions = () - type = real | kind = kind_phys - intent = in -[con_rv] - standard_name = gas_constant_water_vapor - long_name = gas constant water vapor - units = J kg-1 K-1 - dimensions = () - type = real | kind = kind_phys - intent = in -[con_hvap] - standard_name = latent_heat_of_vaporization_of_water_at_0C - long_name = latent heat of vaporization of water at 0c - units = J kg-1 - dimensions = () - type = real | kind = kind_phys - intent = in -[con_xls] - standard_name = latent_heat_of_sublimation_of_water_at_0C - long_name = latent heat of sublimation of water at 0C - units = J kg-1 - dimensions = () - type = real | kind = kind_phys - intent = in -[con_hfus] - standard_name = latent_heat_of_fusion_of_water_at_0C - long_name = latent heat of fusion of water at 0C - units = J kg-1 - dimensions = () - type = real | kind = kind_phys - intent = in -[con_g] - standard_name = gravitational_acceleration - long_name = gravitational acceleration - units = m s-2 - dimensions = () - type = real | kind = kind_phys - intent = in -[errmsg] - standard_name = ccpp_error_message - long_name = error message for error handling in CCPP - units = none - dimensions = () - type = character - kind = len=* - intent = out -[errflg] - standard_name = ccpp_error_code - long_name = error code for error handling in CCPP - units = 1 - dimensions = () - type = integer - intent = out - -######################################################################## diff --git a/physics/CONV/nTiedtke/cu_ntiedtke.F90 b/physics/CONV/nTiedtke/ufs_cu_ntiedtke.F90 similarity index 99% rename from physics/CONV/nTiedtke/cu_ntiedtke.F90 rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke.F90 index ada38c6f5..6c7092f0c 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke.F90 +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke.F90 @@ -1,4 +1,4 @@ -!> \file cu_ntiedtke.F90 +!> \file ufs_cu_ntiedtke.F90 !! This file contains the CCPP-compliant new Tiedtke scheme which parameterize !! Shallow, deep, and mid-level convections in the model !! Please refer to Tiedtke (1989), Bechtold et al. (2004,2008, 2014), @@ -6,7 +6,7 @@ !! !########################################################### -module cu_ntiedtke +module ufs_cu_ntiedtke !+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ use machine , only : kind_phys @@ -103,10 +103,10 @@ module cu_ntiedtke contains !> \brief Brief description of the subroutine !! -!! \section arg_table_cu_ntiedtke_init Argument Table -!! \htmlinclude cu_ntiedtke_init.html +!! \section arg_table_ufs_cu_ntiedtke_init Argument Table +!! \htmlinclude ufs_cu_ntiedtke_init.html !! - subroutine cu_ntiedtke_init(imfshalcnv, imfshalcnv_ntiedtke, imfdeepcnv, & + subroutine ufs_cu_ntiedtke_init(imfshalcnv, imfshalcnv_ntiedtke, imfdeepcnv, & imfdeepcnv_ntiedtke,mpirank, mpiroot, errmsg, errflg) implicit none @@ -145,19 +145,19 @@ subroutine cu_ntiedtke_init(imfshalcnv, imfshalcnv_ntiedtke, imfdeepcnv, & return end if - end subroutine cu_ntiedtke_init + end subroutine ufs_cu_ntiedtke_init ! Tiedtke cumulus scheme from WRF with small modifications ! This scheme includes both deep and shallow convections !=================== ! -!> \section arg_table_cu_ntiedtke_run Argument Table -!! \htmlinclude cu_ntiedtke_run.html +!> \section arg_table_ufs_cu_ntiedtke_run Argument Table +!! \htmlinclude ufs_cu_ntiedtke_run.html !! !----------------------------------------------------------------------- ! level 1 subroutine 'tiecnvn' !----------------------------------------------------------------- - subroutine cu_ntiedtke_run(pu,pv,pt,pqv,tdi,qvdi,pqvf,ptf,clw,poz,pzz,prsl,prsi,pomg, & + subroutine ufs_cu_ntiedtke_run(pu,pv,pt,pqv,tdi,qvdi,pqvf,ptf,clw,poz,pzz,prsl,prsi,pomg, & evap,hfx,zprecc,lmask,lq,km,dt,dx,kbot,ktop,kcnv, & ktrac,ud_mf,dd_mf,dt_mf,cnvw,cnvc,errmsg,errflg) !----------------------------------------------------------------- @@ -384,7 +384,7 @@ subroutine cu_ntiedtke_run(pu,pv,pt,pqv,tdi,qvdi,pqvf,ptf,clw,poz,pzz,prsl,prsi, deallocate(ptenc) ! return - end subroutine cu_ntiedtke_run + end subroutine ufs_cu_ntiedtke_run !############################################################# ! @@ -3830,5 +3830,5 @@ real(kind=kind_phys) function foedelta(tt) foedelta = max(0.,sign(1.,tt-tmelt)) end function foedelta -end module cu_ntiedtke +end module ufs_cu_ntiedtke diff --git a/physics/CONV/nTiedtke/cu_ntiedtke.meta b/physics/CONV/nTiedtke/ufs_cu_ntiedtke.meta similarity index 99% rename from physics/CONV/nTiedtke/cu_ntiedtke.meta rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke.meta index 3e1755a5a..4ad07e424 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke.meta +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke.meta @@ -1,11 +1,11 @@ [ccpp-table-properties] - name = cu_ntiedtke + name = ufs_cu_ntiedtke type = scheme dependencies = ../../hooks/machine.F,../../hooks/physcons.F90 ######################################################################## [ccpp-arg-table] - name = cu_ntiedtke_init + name = ufs_cu_ntiedtke_init type = scheme [imfshalcnv] standard_name = control_for_shallow_convection_scheme @@ -67,7 +67,7 @@ ######################################################################## [ccpp-arg-table] - name = cu_ntiedtke_run + name = ufs_cu_ntiedtke_run type = scheme [pu] standard_name = x_wind_of_new_state diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.F90 similarity index 64% rename from physics/CONV/nTiedtke/cu_ntiedtke_post.F90 rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.F90 index 583dfd57d..e576b779f 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.F90 +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.F90 @@ -1,20 +1,20 @@ -!> \file cu_ntiedtke_post.F90 +!> \file ufs_cu_ntiedtke_post.F90 !! Contains code related to New Tiedtke convective scheme -module cu_ntiedtke_post +module ufs_cu_ntiedtke_post implicit none private - public :: cu_ntiedtke_post_run + public :: ufs_cu_ntiedtke_post_run contains -!> \section arg_table_cu_ntiedtke_post_run Argument Table -!! \htmlinclude cu_ntiedtke_post_run.html +!> \section arg_table_ufs_cu_ntiedtke_post_run Argument Table +!! \htmlinclude ufs_cu_ntiedtke_post_run.html !! - subroutine cu_ntiedtke_post_run (t, q, prevst, prevsq, errmsg, errflg) + subroutine ufs_cu_ntiedtke_post_run (t, q, prevst, prevsq, errmsg, errflg) use machine, only: kind_phys @@ -35,6 +35,6 @@ subroutine cu_ntiedtke_post_run (t, q, prevst, prevsq, errmsg, errflg) prevst(:,:) = t(:,:) prevsq(:,:) = q(:,:) - end subroutine cu_ntiedtke_post_run + end subroutine ufs_cu_ntiedtke_post_run -end module cu_ntiedtke_post +end module ufs_cu_ntiedtke_post diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.meta similarity index 95% rename from physics/CONV/nTiedtke/cu_ntiedtke_post.meta rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.meta index db51223d3..8b737986f 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_post.meta +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_post.meta @@ -1,11 +1,11 @@ [ccpp-table-properties] - name = cu_ntiedtke_post + name = ufs_cu_ntiedtke_post type = scheme dependencies = ../../hooks/machine.F ######################################################################## [ccpp-arg-table] - name = cu_ntiedtke_post_run + name = ufs_cu_ntiedtke_post_run type = scheme [t] standard_name = air_temperature_of_new_state diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.F90 similarity index 80% rename from physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.F90 index 81a55176d..506bfa601 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.F90 +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.F90 @@ -1,20 +1,20 @@ -!> \file cu_ntiedtke_pre.F90 +!> \file ufs_cu_ntiedtke_pre.F90 !! Contains code related to New Tiedtke convective scheme -module cu_ntiedtke_pre +module ufs_cu_ntiedtke_pre implicit none private - public :: cu_ntiedtke_pre_run + public :: ufs_cu_ntiedtke_pre_run contains -!> \section arg_table_cu_ntiedtke_pre_run Argument Table -!! \htmlinclude cu_ntiedtke_pre_run.html +!> \section arg_table_ufs_cu_ntiedtke_pre_run Argument Table +!! \htmlinclude ufs_cu_ntiedtke_pre_run.html !! - subroutine cu_ntiedtke_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, prevst, prevsq, & + subroutine ufs_cu_ntiedtke_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, prevst, prevsq, & forcet, forceq, errmsg, errflg) use machine, only: kind_phys @@ -59,6 +59,6 @@ subroutine cu_ntiedtke_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q, endif endif - end subroutine cu_ntiedtke_pre_run + end subroutine ufs_cu_ntiedtke_pre_run -end module cu_ntiedtke_pre +end module ufs_cu_ntiedtke_pre diff --git a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.meta similarity index 97% rename from physics/CONV/nTiedtke/cu_ntiedtke_pre.meta rename to physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.meta index 1938ee711..161a7057b 100644 --- a/physics/CONV/nTiedtke/cu_ntiedtke_pre.meta +++ b/physics/CONV/nTiedtke/ufs_cu_ntiedtke_pre.meta @@ -1,11 +1,11 @@ [ccpp-table-properties] - name = cu_ntiedtke_pre + name = ufs_cu_ntiedtke_pre type = scheme dependencies = ../../hooks/machine.F ######################################################################## [ccpp-arg-table] - name = cu_ntiedtke_pre_run + name = ufs_cu_ntiedtke_pre_run type = scheme [flag_init] standard_name = flag_for_first_timestep diff --git a/physics/mmm_physics b/physics/mmm_physics index a8644a41d..b7e45bbc4 160000 --- a/physics/mmm_physics +++ b/physics/mmm_physics @@ -1 +1 @@ -Subproject commit a8644a41dece32e97f8b5e0e8801f8edc3b60a89 +Subproject commit b7e45bbc4f1d3d3cf42f939b92fc019fff2a8f86