Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add optional attribute to Fortran source files #18

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 19 additions & 14 deletions physics/CONV/C3/cu_c3_driver.F90
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
integer :: ichoicem=13 ! 0 2 5 13
integer :: ichoice_s=3 ! 0 1 2 3

logical, intent(in) :: do_cap_suppress
logical, intent(in), optional :: do_cap_suppress
real(kind=kind_phys), parameter :: aodc0=0.14
real(kind=kind_phys), parameter :: aodreturn=30.
real(kind=kind_phys) :: dts,fpi,fp
Expand All @@ -111,18 +111,20 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
real (kind=kind_phys), intent(in) :: g,cp,fv,r_d,xlv,r_v,betascu,betamcu,betadcu
logical, intent(in ) :: ldiag3d
logical, intent(in ) :: progsigma
real(kind=kind_phys), intent(inout) :: dtend(:,:,:)
real(kind=kind_phys), intent(inout), optional :: dtend(:,:,:)
!$acc declare copy(dtend)
integer, intent(in) :: dtidx(:,:), &
integer, intent(in), optional :: dtidx(:,:)
integer, intent(in) :: &
index_of_x_wind, index_of_y_wind, index_of_temperature, &
index_of_process_scnv, index_of_process_dcnv, ntqv, ntcw, ntiw
!$acc declare copyin(dtidx)
real(kind=kind_phys), dimension( : , : ), intent(in ) :: forcet,forceqv_spechum,w,phil,delp
real(kind=kind_phys), dimension ( : , : ), intent(in ) :: sigmain,qmicro
real(kind=kind_phys), dimension( : , : ), intent(in ), optional :: forcet,forceqv_spechum
real(kind=kind_phys), dimension( : , : ), intent(in ) :: w,phil,delp
real(kind=kind_phys), dimension ( : , : ), intent(in ), optional :: sigmain,qmicro
real(kind=kind_phys), dimension( : , : ), intent(inout ) :: t,us,vs
real(kind=kind_phys), dimension( : , : ), intent(inout ) :: qci_conv
real(kind=kind_phys), dimension( : , : ), intent(inout ), optional :: qci_conv
real(kind=kind_phys), dimension( : , : ), intent(out ) :: cnvw_moist,cnvc
real(kind=kind_phys), dimension ( : , : ), intent(out ) :: sigmaout
real(kind=kind_phys), dimension ( : , : ), intent(out ), optional :: sigmaout
real(kind=kind_phys), dimension( : , : ), intent(inout ) :: cliw, clcw
real(kind=kind_phys), dimension ( : , : , :), intent(in ) :: tmf
!$acc declare copyin(forcet,forceqv_spechum,w,phil)
Expand All @@ -134,27 +136,30 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
integer, intent(in) :: dfi_radar_max_intervals
real(kind=kind_phys), intent(in) :: fhour, fh_dfi_radar(:)
integer, intent(in) :: num_dfi_radar, ix_dfi_radar(:)
real(kind=kind_phys), intent(in) :: cap_suppress(:,:)
real(kind=kind_phys), intent(in), optional :: cap_suppress(:,:)
!$acc declare copyin(fh_dfi_radar,ix_dfi_radar,cap_suppress)

integer, dimension (:), intent(out) :: hbot,htop,kcnv
integer, dimension (:), intent(in) :: xland
real(kind=kind_phys), dimension (:), intent(in) :: pbl,maxMF
real(kind=kind_phys), dimension (:), intent(in), optional :: pbl,maxMF
!$acc declare copyout(hbot,htop,kcnv)
!$acc declare copyin(xland,pbl)
integer, dimension (im) :: tropics
!$acc declare create(tropics)
! ruc variable
real(kind=kind_phys), dimension (:), intent(in) :: hfx2,qfx2,psuri,ca_deep
real(kind=kind_phys), dimension (:,:), intent(out) :: ud_mf,dd_mf,dt_mf
real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d,maxupmf,rainevap
real(kind=kind_phys), dimension (:), intent(in) :: hfx2,qfx2,psuri
real(kind=kind_phys), dimension (:), intent(in), optional :: ca_deep
real(kind=kind_phys), dimension (:,:), intent(out), optional :: ud_mf
real(kind=kind_phys), dimension (:,:), intent(out) :: dd_mf,dt_mf
real(kind=kind_phys), dimension (:), intent(out) :: raincv,cld1d,rainevap
real(kind=kind_phys), dimension (:), intent(out), optional :: maxupmf
real(kind=kind_phys), dimension (:,:), intent(in) :: t2di,p2di
!$acc declare copyin(hfx2,qfx2,psuri,t2di,p2di)
!$acc declare copyout(ud_mf,dd_mf,dt_mf,raincv,cld1d)
! Specific humidity from FV3
real(kind=kind_phys), dimension (:,:), intent(in) :: qv2di_spechum
real(kind=kind_phys), dimension (:,:), intent(inout) :: qv_spechum
real(kind=kind_phys), dimension (:), intent(inout) :: aod_gf
real(kind=kind_phys), dimension (:), intent(inout), optional :: aod_gf
!$acc declare copyin(qv2di_spechum) copy(qv_spechum,aod_gf)
! Local water vapor mixing ratios and cloud water mixing ratios
real(kind=kind_phys), dimension (im,km) :: qv2di, qv, forceqv, cnvw
Expand All @@ -165,7 +170,7 @@ subroutine cu_c3_driver_run(ntracer,garea,im,km,dt,flag_init,flag_restart,&
real(kind=kind_phys), intent(in ) :: dt

integer, intent(in ) :: imfshalcnv
integer, dimension(:), intent(inout) :: cactiv,cactiv_m
integer, dimension(:), intent(inout), optional :: cactiv,cactiv_m
!$acc declare copy(cactiv,cactiv_m)

character(len=*), intent(out) :: errmsg
Expand Down
18 changes: 18 additions & 0 deletions physics/CONV/C3/cu_c3_driver.meta
Original file line number Diff line number Diff line change
Expand Up @@ -156,13 +156,15 @@
dimensions = (horizontal_loop_extent)
type = integer
intent = inout
optional = True
[cactiv_m]
standard_name = counter_for_grell_freitas_mid_level_convection
long_name = mid-level cloud convective activity memory
units = none
dimensions = (horizontal_loop_extent)
type = integer
intent = inout
optional = True
[g]
standard_name = gravitational_acceleration
long_name = gravitational acceleration
Expand Down Expand Up @@ -219,6 +221,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[forceqv_spechum]
standard_name = tendendy_of_specific_humidity_due_to_nonphysics
long_name = moisture tendency due to dynamics only
Expand All @@ -227,6 +230,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[tmf]
standard_name = tendency_of_vertically_diffused_tracer_concentration
long_name = updated tendency of the tracers due to vertical diffusion in PBL scheme
Expand All @@ -243,6 +247,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[sigmain]
standard_name = prognostic_updraft_area_fraction_in_convection
long_name = convective updraft area fraction
Expand All @@ -251,6 +256,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[sigmaout]
standard_name = updraft_area_fraction_updated_by_physics
long_name = convective updraft area fraction updated by physics
Expand All @@ -259,6 +265,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[betascu]
standard_name = tuning_param_for_shallow_cu
long_name = tuning param for shallow cu in case prognostic closure is used
Expand Down Expand Up @@ -438,6 +445,7 @@
type = real
kind = kind_phys
intent = inout
optional = True
[cliw]
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
Expand All @@ -462,6 +470,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[ud_mf]
standard_name = instantaneous_atmosphere_updraft_convective_mass_flux
long_name = (updraft mass flux) * delt
Expand All @@ -470,6 +479,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[dd_mf]
standard_name = instantaneous_atmosphere_downdraft_convective_mass_flux
long_name = (downdraft mass flux) * delt
Expand Down Expand Up @@ -531,13 +541,15 @@
type = real
kind = kind_phys
intent = inout
optional = True
[dtidx]
standard_name = cumulative_change_of_state_variables_outer_index
long_name = index of state-variable and process in last dimension of diagnostic tendencies array AKA cumulative_change_index
units = index
dimensions = (number_of_tracers_plus_one_hundred,number_of_cumulative_change_processes)
type = integer
intent = in
optional = True
[ntqv]
standard_name = index_of_specific_humidity_in_tracer_concentration_array
long_name = tracer index for water vapor (specific humidity)
Expand Down Expand Up @@ -616,6 +628,7 @@
type = real
kind = kind_phys
intent = inout
optional = True
[fhour]
standard_name = forecast_time
long_name = current forecast time
Expand All @@ -631,6 +644,7 @@
dimensions = ()
type = logical
intent = in
optional = True
[fh_dfi_radar]
standard_name = forecast_lead_times_bounding_radar_derived_temperature_or_convection_suppression_intervals
long_name = forecast lead times bounding radar derived temperature or convection suppression intervals
Expand Down Expand Up @@ -661,6 +675,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[ca_deep]
standard_name = cellular_automata_area_fraction_for_deep_convection_from_coupled_process
long_name = fraction of cellular automata for deep convection
Expand All @@ -669,6 +684,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[rainevap]
standard_name = physics_field_for_coupling
long_name = physics_field_for_coupling
Expand All @@ -685,6 +701,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[maxMF]
standard_name = maximum_mass_flux
long_name = maximum mass flux within a column
Expand All @@ -693,6 +710,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[do_mynnedmf]
standard_name = flag_for_mellor_yamada_nakanishi_niino_pbl_scheme
long_name = flag to activate MYNN-EDMF
Expand Down
15 changes: 8 additions & 7 deletions physics/CONV/C3/cu_c3_driver_post.F90
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,16 @@ subroutine cu_c3_driver_post_run (im, km, t, q, prevst, prevsq, cactiv, cactiv_m
real(kind_phys), intent(in) :: t(:,:)
real(kind_phys), intent(in) :: q(:,:)
real(kind_phys), dimension(:),intent(in) :: garea
real(kind_phys), intent(out) :: prevst(:,:)
real(kind_phys), intent(out) :: prevsq(:,:)
integer, intent(in) :: cactiv(:)
integer, intent(in) :: cactiv_m(:)
real(kind_phys), intent(out) :: conv_act(:)
real(kind_phys), intent(out) :: conv_act_m(:)
real(kind_phys), intent(out), optional :: prevst(:,:)
real(kind_phys), intent(out), optional :: prevsq(:,:)
integer, intent(in), optional :: cactiv(:)
integer, intent(in), optional :: cactiv_m(:)
real(kind_phys), intent(out), optional :: conv_act(:)
real(kind_phys), intent(out), optional :: conv_act_m(:)
! for Radar reflectivity
real(kind_phys), intent(in) :: dt
real(kind_phys), intent(in) :: raincv(:), maxupmf(:)
real(kind_phys), intent(in) :: raincv(:)
real(kind_phys), intent(in), optional :: maxupmf(:)
real(kind_phys), intent(inout) :: refl_10cm(:,:)
character(len=*), intent(out) :: errmsg
!$acc declare copyin(t,q,cactiv,cactiv_m) copyout(prevst,prevsq,conv_act,conv_act_m)
Expand Down
7 changes: 7 additions & 0 deletions physics/CONV/C3/cu_c3_driver_post.meta
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[prevsq]
standard_name = specific_humidity_on_previous_timestep
long_name = moisture from previous time step
Expand All @@ -53,20 +54,23 @@
type = real
kind = kind_phys
intent = out
optional = True
[cactiv]
standard_name = counter_for_grell_freitas_convection
long_name = convective activity memory
units = none
dimensions = (horizontal_loop_extent)
type = integer
intent = in
optional = True
[cactiv_m]
standard_name = counter_for_grell_freitas_mid_level_convection
long_name = midlevel convective activity memory
units = none
dimensions = (horizontal_loop_extent)
type = integer
intent = in
optional = True
[conv_act]
standard_name = consecutive_calls_for_grell_freitas_convection
long_name = Memory counter for GF
Expand All @@ -75,6 +79,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[conv_act_m]
standard_name = consecutive_calls_for_grell_freitas_mid_level_convection
long_name = Memory counter for GF midlevel
Expand All @@ -83,6 +88,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[dt]
standard_name = timestep_for_physics
long_name = physics time step
Expand Down Expand Up @@ -115,6 +121,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[refl_10cm]
standard_name = radar_reflectivity_10cm
long_name = instantaneous refl_10cm
Expand Down
16 changes: 8 additions & 8 deletions physics/CONV/C3/cu_c3_driver_pre.F90
Original file line number Diff line number Diff line change
Expand Up @@ -30,16 +30,16 @@ subroutine cu_c3_driver_pre_run (flag_init, flag_restart, kdt, fhour, dtp, t, q,
real(kind_phys), intent(in) :: dtp
real(kind_phys), intent(in) :: t(:,:)
real(kind_phys), intent(in) :: q(:,:)
real(kind_phys), intent(in) :: prevst(:,:)
real(kind_phys), intent(in) :: prevsq(:,:)
real(kind_phys), intent(in), optional :: prevst(:,:)
real(kind_phys), intent(in), optional :: prevsq(:,:)
!$acc declare copyin(t,q,prevst,prevsq)
real(kind_phys), intent(out) :: forcet(:,:)
real(kind_phys), intent(out) :: forceq(:,:)
integer, intent(out) :: cactiv(:)
integer, intent(out) :: cactiv_m(:)
real(kind_phys), intent(out), optional :: forcet(:,:)
real(kind_phys), intent(out), optional :: forceq(:,:)
integer, intent(out), optional :: cactiv(:)
integer, intent(out), optional :: cactiv_m(:)
!$acc declare copyout(forcet,forceq,cactiv,cactiv_m)
real(kind_phys), intent(in) :: conv_act(:)
real(kind_phys), intent(in) :: conv_act_m(:)
real(kind_phys), intent(in), optional :: conv_act(:)
real(kind_phys), intent(in), optional :: conv_act_m(:)
!$acc declare copyin(conv_act,conv_act_m)
character(len=*), intent(out) :: errmsg
integer, intent(out) :: errflg
Expand Down
8 changes: 8 additions & 0 deletions physics/CONV/C3/cu_c3_driver_pre.meta
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[prevsq]
standard_name = specific_humidity_on_previous_timestep
long_name = moisture from previous time step
Expand All @@ -76,6 +77,7 @@
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
Expand All @@ -84,6 +86,7 @@
type = real
kind = kind_phys
intent = out
optional = True
[forceq]
standard_name = tendendy_of_specific_humidity_due_to_nonphysics
long_name = moisture tendency due to dynamics only
Expand All @@ -92,20 +95,23 @@
type = real
kind = kind_phys
intent = out
optional = True
[cactiv]
standard_name = counter_for_grell_freitas_convection
long_name = convective activity memory
units = none
dimensions = (horizontal_loop_extent)
type = integer
intent = out
optional = True
[cactiv_m]
standard_name = counter_for_grell_freitas_mid_level_convection
long_name = midlevel convective activity memory
units = none
dimensions = (horizontal_loop_extent)
type = integer
intent = out
optional = True
[conv_act]
standard_name = consecutive_calls_for_grell_freitas_convection
long_name = Memory counter for GF
Expand All @@ -114,6 +120,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[conv_act_m]
standard_name = consecutive_calls_for_grell_freitas_mid_level_convection
long_name = Memory counter for GF midlevel
Expand All @@ -122,6 +129,7 @@
type = real
kind = kind_phys
intent = in
optional = True
[errmsg]
standard_name = ccpp_error_message
long_name = error message for error handling in CCPP
Expand Down
Loading
Loading